在PROC FREQ過程,我們可以在以下方面指定輸出表:輸出PROC意味着將文件/ SAS數據表
Proc Freq
DATA=LIB.TABLE_IN
ORDER=FREQ;
TABLES FIELD/MISSING OUT = LIB.TABLE_OUT; /* outputs to a SAS data table */
RUN;
我們如何做同樣的PROC MEANS程序?
3210感謝您的幫助!
在PROC FREQ過程,我們可以在以下方面指定輸出表:輸出PROC意味着將文件/ SAS數據表
Proc Freq
DATA=LIB.TABLE_IN
ORDER=FREQ;
TABLES FIELD/MISSING OUT = LIB.TABLE_OUT; /* outputs to a SAS data table */
RUN;
我們如何做同樣的PROC MEANS程序?
3210感謝您的幫助!
兩種方式。語句output
將輸出發送到數據集;你可以像任何proc一樣使用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;
謝謝。我選擇了第一個選項。 – Alex
幾乎任何你可以用proc means
做,在列表區域產生的輸出也可以通過proc summary
生產作爲輸出數據集,雖然有時稍微不同的語法和不同的輸出格式。例如。這產生了與你的例子相同的信息,但在一個寬表中,而不是在一個長表中:
proc summary data=sashelp.class;
var _numeric_;
output out = my_summary n= nmiss= /autoname;
run;
我意識到你也可以用proc來實現它......謝謝! – Alex
'summary'只是v8 + SAS中不同默認值的'means'的克隆。 – Joe
@Joe奇怪的是,這是我遇到的幾個功能之一,似乎並沒有在proc摘要中精確複製。 – user667489
只是出於好奇,你在查詢文檔之前偷看了嗎? – Joe