我在SAS Enterprise Guide 6.1中运行以下SAS代码,以获取表中所有变量的null / not null的摘要统计信息。这通过“结果”选项卡生成所需信息,该选项卡为每个结果创建一个单独的表,显示空/非零频率和百分比。
我想做的是将结果放入一个输出数据集中,所有变量和统计信息都在一个表中。
proc format;
value $missfmt ' '='Missing' other='Not Missing';
value missfmt . ='Missing' other='Not Missing';
run;
proc freq data=mydatatable;
format _CHAR_ $missfmt.;
tables _CHAR_ / out=work.out1 missing missprint nocum;
format _NUMERIC_ missfmt.;
tables _NUMERIC_ / out=work.out2 missing missprint nocum;
run;
out1
和out2
正在生成如下表:
FieldName | Count | Percent
Not Missing | Not Missing | Not Missing
但是每个只填充一个变量,并且不显示频率计数。
我正在尝试创建输出的表格为:
field | Missing | Not Missing | % Missing
FieldName1 | 100 | 100 | 50
FieldName2 | 3 | 97 | 3
答案 0 :(得分:3)
tables
语句输出选项仅适用于请求的 last 表。 _CHAR_
解析为(所有字符变量),但它们是单个表,因此您只能获得最后一个请求。
你可以通过以下两种方式获得这种方法。使用PROC TABULATE
,更容易处理变量列表;或使用ODS OUTPUT
来获取proc freq输出。两种输出样式都可能需要一些工作才能完全符合您想要的结构。
ods output onewayfreqs=myfreqs; *use `ODS TRACE` to find this name if you do not know it;
proc freq data=sashelp.class;
tables _character_;
tables _numeric_;
run;
ods output close;