修改SAS Output的顯示格式
在執行SAS時有時會看到output的p-value值顯示<.0001,是因為SAS的p-value值如果在小數點第4位下的話則就會以<.0001替代。但有時因為從事的工作或研究需要看的資料值需比較精準,這時要如何修改SAS的output值的顯示格式以符合我們的需求。
SAS在執行一個分析的程序時,會給予我們基本所需的所有表格及圖形,所以如果我們要修改其中的一張表格的某一個數值的表示格式,則要先知道我們要修改的表格名稱跟數值的變數名稱。
1.查詢表格名稱
查詢表格名稱有兩種方法,第一種是一張一張的查詢,第二種是列出分析所有的表格名稱。
a.在執行SAS的分析完畢後可以在左側的結果發現下圖,在妳想知道的表格上點選滑鼠右鍵後選擇屬性。
就可以看到下圖,其中我們會用到名稱跟範本。
b.利用SAS的程式(ods trace)的功能,將我們想列出的分析包含在其中。
● ods trace on;
proc freq;
weight count;
table x*y/chisq;
run;
● ods trace off;
|
執行完上述程式後,可以在SAS的output中看到下圖結果,一樣可以得到我們想知道的名稱與範本。
2.查詢數值名稱
當我們知道表格名稱後就可以利用ods output將表格輸出至外部資料檔,再將資料檔列印出來就可以知道我們要修改的變數名稱。
proc freq;
weight count;
table x*y/chisq;
ods output chisq=aa;
proc print data=aa;
run;
|
當我們已經知道表格的範本名稱跟表格中的變數名稱,我們就可以利用proc template修改輸出表格的顯示格式。下面所列的程式是在修改SAS的範本。
proc template;
edit Base.Freq.ChiSq;
edit Prob;
format = 10.8;
end;
end;
run;
|
再執行一次SAS的分析程序
proc freq data=test;
weight count;
table x*y/chisq;
run;
|
再去檢視output可以發現之前p-value所顯示的<.0001變成我們所設定的10.8的數值格式。
補充:
因為我們修改了SAS的範本,所以之後的Chisq表的p-value都將以我們所設定的格式所顯示。即使重啟SAS都一樣。如果要回復原來的表格要如何達到呢?
下面提供兩種方法:
-
利用proc template將prob變數的格式設定成pvlaue6.4
proc template;
edit Base.Freq.ChiSq;
edit Prob;
format = pvalue6.4;
end;
end;
run;
|
-
刪除範本Base.Freq.ChiSq,這樣SAS在執行分析時找不到範本可以套用,則會複製備份的Base.Freq.ChiSq回去,程式如下:
proc template;
delete Base.Freq.ChiSq;
run;
|
Tags