以下將介紹以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-score66個分數將每個人的資料橫轉直, 並保留個人基本資料, 可利用[ 程式二]完成。

1.
首先宣告執行TRANSPOSE程序, 資料來源為AA
2.
其次將轉置後結果存入檔案BB(OUT=BB);
3.
Name=transposed_by 標示被轉置之欄位名稱(可任意書寫), 若不執行此項, 通常預設欄位名稱為 _NAME_;
4.
VAR指定轉置的欄位,此例以score1-score66個分數進行橫轉直的轉置;
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;

 

 結果

 

SAS_Anti_Transpose  

 

arrow
arrow
    文章標籤
    SAS 資料轉置 Transpose
    全站熱搜

    estat 發表在 痞客邦 留言(0) 人氣()