在SAS中从proc freq创建输出

在SAS中从proc freq创建输出,sas,Sas,我正在SAS Enterprise Guide 6.1中运行以下SAS代码,以获取表中所有变量的null/NOTNULL汇总统计信息。这是通过“结果”选项卡生成所需信息,该选项卡为每个结果创建一个单独的表格,显示空/非空频率和百分比 我想做的是将结果放入一个输出数据集中,将所有变量和统计数据放在一个表中 proc format; value $missfmt ' '='Missing' other='Not Missing'; value missfmt . ='Missin

我正在SAS Enterprise Guide 6.1中运行以下SAS代码,以获取表中所有变量的null/NOTNULL汇总统计信息。这是通过“结果”选项卡生成所需信息,该选项卡为每个结果创建一个单独的表格,显示空/非空频率和百分比

我想做的是将结果放入一个输出数据集中,将所有变量和统计数据放在一个表中

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

语句输出选项仅适用于请求的最后一个表
\u CHAR
解析为(所有字符变量),但它们是单个表,因此只能获取最后一个请求的表

你可以从两种方式中选择一种。或者使用
PROC tablate
,它更容易处理变量列表;或者使用ODS输出获取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;

语句输出选项仅适用于请求的最后一个表
\u CHAR
解析为(所有字符变量),但它们是单个表,因此只能获取最后一个请求的表

你可以从两种方式中选择一种。或者使用
PROC tablate
,它更容易处理变量列表;或者使用ODS输出获取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;

如果将格式添加到
proc freq
+
表中,这可能会有所帮助,它将生成所需的表。如果将格式添加到
proc freq
+
表中,这可能会有所帮助,它将生成所需的表。谢谢,我是SAS的新手,因此了解哪些不同的选项是有用的。我结合使用
ods输出
proc-sql
提出了一个混乱的解决方案!谢谢,我是SAS的新手,因此了解哪些不同的选项是有用的。我结合使用
ods输出
proc-sql
提出了一个混乱的解决方案!