2008年4月7日 星期一

Any WAY you Want it: Getting the Right TYPEs of Observations Out of PROC SUMMARY or MEANS

原文出處:http://www2.sas.com/proceedings/forum2008/087-2008.pdf




常使用敘述統計語法如proc means等,會有將資料output的經驗,不過轉出的資料常會有意無意看到資料裡會多了一些非期望的變項如_TYPE_ _FREQ_ _STAT_等,而這些變項有是其他用途的.
其中WAYS,TYPES使用如下


1.常用output方式

data king;
input x1 x2 y;
cards ;
1 1 10
1 1 12
1 2 21
1 2 13
1 3 21
1 3 30
2 1 15
2 1 18
2 2 19
2 2 20
2 3 25
2 3 9
3 1 30
3 1 22
3 2 14
3 2 13
3 3 27
3 3 18
;
proc means ;
class x1 x2 ;
var y;
output out=k1 ;
proc print data=k1;
run;



此時會轉出k1這個資料檔,並增加了幾個變項
如x1,x2,_TYPE_,_FREQ_,_STAT_,y
其中x1,x2為原資料分層後的結果
_TYPE_為x1,x2的分層後的聯合分類變項,若分層很多時_TYPE_會有更多組方便使用者再次處理資料
_FREQ_為_TYPE_分組後的次數
_STAT_為轉出時未指定類型則定義為預設值資料,其中有N,MIN,MAX,MEAN,STD等


2.使用WAYS增添實用性(分類變項的因子數)
在語法中鍵入output後面/ WAYS

proc means ;
class x1 x2 ;
var y;
output out=k1 mean=mean / WAYS;
proc print data=k1;
run;



此語法會使轉出之資料增加 _WAYS_變項
是用來表達其分類變項x1,x2的因子數(way)
若資料(x1,x2)呈現(.,.)則_WAY_=0
若資料(x1,x2)呈現(1,.)或(.,1)則_WAY_=1
為一因子(one-way)
若有資料分類為(x1,x2,x3,x4,x5)呈現(1,1,1,1,1)則_WAY_=5




3.NWAY功能(保留最大因子數之觀察值)
使用此功能僅會顯示出因子數最大之觀察值(full)

proc means NWAY;;
class x1 x2 ;
var y;
output out=k1 mean=mean /ways;
proc print data=k1;
run;







4.WAYS(因子數選擇)
選擇要出現的因子數為多少

proc means ;
class x1 x2 ;
var y;
WAYS 1;
output out=k1 mean=mean / WAYS;
proc print data=k1;
run;



選擇因子數可以是複合型態,如下只顯示因子數0與2之觀察值

proc means ;
class x1 x2 ;
var y;
WAYS 0 2;
output out=k1 mean=mean / WAYS;
proc print data=k1;
run;






5.TYPE的使用
此語法是要用來配合聯合分類變數(如x1,x2)時顯示觀察值所用

proc means ;
class x1 x2 ;
var y;
TYPE x1 x2 x1*x2 ();
output out=k1 mean=mean / WAYS;
proc print data=k1;
run;


其中x1是顯示聯合分類變數有資料的(1,.)
x2是顯示聯合分類變數有資料的(.,1)
x1*x2是顯示聯合分類變數有資料(1,1)
()是顯示皆無資料(.,.)

沒有留言: