2007年12月25日 星期二

資料的行列互換

通常上下直向為一個變項,而左右橫向代表一個觀察值,但對於不常建立與使用資料的人而言,常常不了解資料的變項與觀察值的位置關係,固然在鍵入資料總是位置錯亂,而使的分析人員頭痛,不過以下提供一簡易方法


proc transpose ;
run;
proc print;
run;



原始資料


轉置後資料


此方法像翻書一樣自左下角往右上角翻過去,但在轉置仍有很多風險存在
而在轉換後因會自動將變項作命名此時看不順眼可以增加以下語法

proc transpose label=DESC name=VAR prefix=VAL ;
run;
proc print;
run;


label 即是用來替 _LABEL_ 重新命名,name 則是用來替 _NAME_ 從新命名,而 prefix 則是將 COL1 到 COL11 開頭的 COL 重新命名

重新命名後的資料呈現如下圖:


若只想轉換特定幾個變項時可以增加VAR statement

proc transpose label=DESC name=VAR prefix=VAL ;
var x1 x2;
run;
proc print;
run;



結果如下:


然而轉換利用SAS的命名方式 prefix 覺得比較無意議,則可以改用ID statement

proc transpose label=DESC name=VAR prefix=VAL ;
ID name;
run;
proc print;
run;



轉換前:

轉換後:





沒有留言: