标题: 如何转换? [打印本页] 作者: shiyiming 时间: 2011-6-28 16:35 标题: 如何转换? 数据集如下:
id visit var1 var2 value
1 1 x x1 5
1 1 y y1 6
1 2 x x2 7
1 2 y y2 8
2 1 x x1 9
2 1 y y1 10
2 2 x x2 11
2 2 y y2 12
生成的数据集:
id x1 x2 y1 y2
1 5 7 6 8
2 9 11 10 12
谢谢!作者: shiyiming 时间: 2011-6-28 18:44 标题: Re: 如何转换? 用transpose转置即可作者: shiyiming 时间: 2011-6-28 21:16 标题: Re: 如何转换? [code:1lgzfsy5]data a;
input id visit var1$ var2$ value;
cards;
1 1 x x1 5
1 1 y y1 6
1 2 x x2 7
1 2 y y2 8
2 1 x x1 9
2 1 y y1 10
2 2 x x2 11
2 2 y y2 12
;
proc sort data=a;
by id var2;
run;
/*方法一*/
data b;
do i=1 to 4;
set a(keep=id var2 value);
array t[1:4] x1 x2 y1 y2;
t(i)=value;
end;
drop i var2 value;
run;
/*方法二*/
proc transpose data=a out=c;
var value;
by id;
id var2;
run;[/code:1lgzfsy5]