在SAS中将多列转置为行

在SAS中将多列转置为行,sas,transpose,Sas,Transpose,我是SAS的新手,我想在SAS中转置下表 从 到 有人能帮忙吗?您可以使用proc transpose转换数据 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=date

我是SAS的新手,我想在SAS中转置下表


有人能帮忙吗?

您可以使用
proc transpose
转换数据

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;
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;

您是否考虑过
proc transpose
??
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;
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;