修改SAS Output的顯示格式

0
修改SAS Output的顯示格式
在執行SAS時有時會看到output的p-value值顯示<.0001,是因為SAS的p-value值如果在小數點第4位下的話則就會以<.0001替代。但有時因為從事的工作或研究需要看的資料值需比較精準,這時要如何修改SAS的output值的顯示格式以符合我們的需求。

01
SAS在執行一個分析的程序時,會給予我們基本所需的所有表格及圖形,所以如果我們要修改其中的一張表格的某一個數值的表示格式,則要先知道我們要修改的表格名稱跟數值的變數名稱。
1.查詢表格名稱
查詢表格名稱有兩種方法,第一種是一張一張的查詢,第二種是列出分析所有的表格名稱。

a.在執行SAS的分析完畢後可以在左側的結果發現下圖,在妳想知道的表格上點選滑鼠右鍵後選擇屬性。

02
就可以看到下圖,其中我們會用到名稱跟範本。
03

b.利用SAS的程式(ods trace)的功能,將我們想列出的分析包含在其中。

● ods trace on;
proc freq;
weight count;
table x*y/chisq;
run;
ods trace off;
執行完上述程式後,可以在SAS的output中看到下圖結果,一樣可以得到我們想知道的名稱與範本。
04
2.查詢數值名稱
當我們知道表格名稱後就可以利用ods output將表格輸出至外部資料檔,再將資料檔列印出來就可以知道我們要修改的變數名稱。
proc freq;
weight count;
table x*y/chisq;
ods output chisq=aa;
proc print data=aa;
run;
05
當我們已經知道表格的範本名稱跟表格中的變數名稱,我們就可以利用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的數值格式。
06
補充:
因為我們修改了SAS的範本,所以之後的Chisq表的p-value都將以我們所設定的格式所顯示。即使重啟SAS都一樣。如果要回復原來的表格要如何達到呢?
下面提供兩種方法:
  1. 利用proc template將prob變數的格式設定成pvlaue6.4

    proc template;
    edit Base.Freq.ChiSq;
    edit Prob;
    format = pvalue6.4;
    end;
    end;
    run;
  2. 刪除範本Base.Freq.ChiSq,這樣SAS在執行分析時找不到範本可以套用,則會複製備份的Base.Freq.ChiSq回去,程式如下:

    proc template;
    delete Base.Freq.ChiSq;
    run;
Tags
Share

About Author

SAS Taiwan

SAS 學習資源 : https://blogs.sas.com/content/sastaiwan/

Comments are closed.

Back to Top