SAS中文论坛

标题: 如何转换? [打印本页]

作者: 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]




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2