SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 545|回复: 2
打印 上一主题 下一主题

如何转换?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-6-28 16:35:59 | 只看该作者

如何转换?

数据集如下:
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

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-6-28 18:44:22 | 只看该作者

Re: 如何转换?

用transpose转置即可
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-6-28 21:16:06 | 只看该作者

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]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 05:54 , Processed in 0.074518 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表