以下將介紹以Transpose將資料橫轉直的簡單語法。
在[程式一] 建立資料檔AA中,為同一個人在不同時間的分數, 包含ID(身份證號), SEX, score(分數), 等欄位。
[ 程式一]
data aa;
input id $ sex $ score1-score6;
cards;
A01 F 63 75 68 86 77 91
A02 M 75 65 87 89 72 88
;
proc print;
run;
若研究者想依score1-score6等6個分數將每個人的資料橫轉直, 並保留個人基本資料, 可利用[ 程式二]完成。
1. 首先宣告執行TRANSPOSE程序, 資料來源為AA;
2. 其次將轉置後結果存入檔案BB中(OUT=BB);
3. 以Name=transposed_by 標示被轉置之欄位名稱(可任意書寫), 若不執行此項, 通常預設欄位名稱為 _NAME_;
4. 以VAR指定轉置的欄位,此例以score1-score6等6個分數進行橫轉直的轉置;
5. 以BY指定轉置的依據, 例如此例之基本資料ID(身份證號), SEX,即轉置的條件是依每一個人的基本資料去轉。
6. 以RENAME將橫轉直後的新欄位名稱col1改為SCORE
[ 程式二]
proc transpose data=aa
out=bb (rename=col1=score)
Name=transposed_by;
var score1-score6;
by id sex;
proc print data=bb;
run;
結果
留言列表