2017-03-08 1202 views
0

我正在SAS Enterprise Guide 6.1中運行以下SAS代碼,以便爲表中的所有變量獲得null/not null的彙總統計信息。這是通過「結果」選項卡生成所需的信息,該選項卡爲每個結果創建一個單獨的表,顯示空/非空頻率和百分比。從SAS中的proc freq創建輸出

我想要做的就是將結果放入一個輸出數據集中,將所有變量和統計數據放在一張表中。

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; 

out1out2正在生成到表中所示:

FieldName | Count | Percent 
Not Missing | Not Missing | Not Missing 

但是僅與每一個可變填充,並且沒有被示出的頻率計數。

我試圖創建作爲輸出將表:

field | Missing | Not Missing | % Missing 
FieldName1 | 100 | 100 | 50 
FieldName2 | 3 | 97 | 3 
+1

這可能會有幫助,如果您將格式添加到'proc freq' +'table _all_;',它將生成所需的表格。 https://gist.github.com/statgeek/e0903d269d4a71316a4e – Reeza

回答

3

tables語句輸出選項僅適用於要求最後表。 _CHAR_解析爲(所有字符變量),但它們是單個表格,所以只能得到最後一個請求。

您可以通過以下兩種方法中的任意一種。要麼使用PROC TABULATE,這更容易處理變量列表;或使用ODS OUTPUT來獲取proc頻率輸出。兩種輸出樣式都需要一些工作才能進入您想要的結構。

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; 
+0

謝謝,我是SAS新手,因此瞭解可用的不同選項很有幫助。我想出了一個使用'ods output'和'proc sql'組合的混亂解決方案! – joshi123