在PROC FREQ程序中,我们可以用以下术语指定输出表:
Proc Freq
DATA=LIB.TABLE_IN
ORDER=FREQ;
TABLES FIELD / MISSING OUT = LIB.TABLE_OUT; /* outputs to a SAS data table */
RUN;
我们怎么能用PROC MEANS程序做同样的事情?
proc means data=LIB.TABLE_IN n nmiss;
感谢您的帮助!
答案 0 :(得分:1)
两种方式。 output
语句将输出发送到数据集;你也可以使用ods output
任何过程。
proc means data=sashelp.class;
class sex;
types sex;
var height weight;
output out=class_means mean= sum= /autoname;
run;
要使用ods output
,您需要知道proc生成的表的名称。您可以使用ODS TRACE
找出该表的名称。
ods trace on;
proc means data=sashelp.class;
class sex;
types sex;
var height weight;
run;
ods trace off;
你会发现它被称为summary
。所以你像这样添加ods output
语句:
ods output summary=class_means_ods;
proc means data=sashelp.class;
class sex;
types sex;
var height weight;
output out=class_means mean= sum= /autoname;
run;
ods output close;
最后,proc means
在我认为9.3(或可能是9.22)stackodsoutput
之后有一个选项,它将结果数据集的格式更改为更多表格,这可能对您有所帮助。
ods output summary=class_means_ods;
proc means data=sashelp.class stackodsoutput;
class sex;
types sex;
var height weight;
output out=class_means mean= sum= /autoname;
run;
ods output close;
答案 1 :(得分:1)
使用proc means
生成列表区域输出的几乎所有内容也可以通过proc summary
作为输出数据集生成,尽管有时语法略有不同,输出格式也不同。例如。这会产生与您的示例相同的信息,但是在宽表中而不是长表:
proc summary data=sashelp.class;
var _numeric_;
output out = my_summary n= nmiss= /autoname;
run;
答案 2 :(得分:0)
如果仅需要N,MIN,MAX,MEAN和STD,则下面的简单行可以生成一个漂亮的表,此处称为“ sumTab”。但是,如果添加NMISS等,它将采用多种格式。
proc means data = X ;
var _numeric_;
output out = sumTab ;
run;