2015-09-04 28 views

回答

2

移調兩次,得到你想要的東西;

data have; 
    input group $ subgroups; 
    cards; 
    A  1 
    A  2 
    A  3 
    B  1 
    B  2 
    ; 
    proc transpose data=have out=temp; 
    by group; 
    run; 

    proc transpose data=temp out=want(drop=_name_); 
    id group; 
    run; 
+0

謝謝。有效。 –

0

爲什麼輸出中的第一行有A = 1和B = 1?爲什麼在最後的觀察中B的缺失值?你想保留原來的訂單嗎?如果是這樣,則創建一個訂單變量並將其用作轉置中的變量。

data middle ; 
    set have ; 
    by group ; 
    if first.group then row=0; 
    row+1; 
run; 
proc sort data=middle ; 
    by row group; 
run; 
proc transpose data=middle out=want ; 
    by row; 
    id group; 
    var subgroups; 
run;