2017-02-27 39 views
0

我是新来的SAS,我想下表转的SAS移调多列排在SAS

ID Var1 Var2 Jul-09 Aug-09 Sep-09  
1 10  15  200  300  
2 5  17  -150  200 

ID Var1 Var2 Date Transpose 
1 10  15 Jul-09  200 
1 10  15 Aug-09  300 
2 5  17 Aug-09  -150 
2 5  17 Sep-09  200 

谁能帮助吗?

+0

您是否考虑过'proc transpose'? – Joe

回答

1

您可以使用proc transpose来转换数据。

options validvarname=any; 

data a; 
    infile datalines missover; 
    input ID Var1 Var2 "Jul-09"n "Aug-09"n "Sep-09"n; 
datalines; 
1 10 15 200 300 
2 5 17 -150 200 
; 
run; 


proc transpose data=a out=b(rename=(_NAME_=Date COL1=Transpose)); 
    var "Jul-09"n--"Sep-09"n; 
    by ID Var1-Var2; 
run; 
+0

谢谢。这工作完美! – user2641784

1
data a; 
input ID Var1 Var2 Jul_09 Aug_09; 
CARDS; 
1 10 15 200 300 
2 5 17 -150 200 
; 

DATA b(drop=i jul_09 aug_09); 
array dates_{*} jul_09 aug_09; 
set a; 
do i=1 to dim(dates_); 
    this_value=dates_{i}; 
    this_date=input(compress(vname(dates_{i}),'_'),MONYY5.); 
    output; 
end; 
format this_date monyy5.; 
run;