我将转置下表:
X Y1 Y2 Y3
a 1 1 2 2 3
a 2 2 3 3 4
b 7 7 8 8 9
致
X
a 1
a 2
a 3
a 2
a 3
a 4
b 7
b 8 8
b 9 9
我尝试过此代码
PROC TRANSPOSE DATA=table1 OUT=table2;
BY X;
RUN;
但是,它给了我这个输出
X COL1 COL2
a 1 1 2 2
a 2 2 3 3
a 3 3 4
b 7
b 8 8
b 9 9
有人可以获取我需要的桌子吗?
感谢任何想法,谢谢!
答案 0 :(得分:1)
类似下面的东西应该起作用
$id
答案 1 :(得分:0)
您可以使用以下代码,它添加一行,然后基于行进行转置。由于行号是唯一的
data have;
input X $ Y1 Y2 Y3;
datalines;
a 1 2 3
a 2 3 4
b 7 8 9
;
run;
data have;
set have;
row=_n_;
run;
PROC TRANSPOSE DATA=have OUT=want(rename=(COL1=Y) drop=_NAME_ row);
by row x;
RUN;
proc print data=want; run;