楼主: zespri
1247 4

请教SAS格式变换 [推广有奖]

  • 0关注
  • 1粉丝

VIP

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
3864 个
通用积分
272.5408
学术水平
7 点
热心指数
9 点
信用等级
8 点
经验
35899 点
帖子
374
精华
0
在线时间
615 小时
注册时间
2006-5-16
最后登录
2023-12-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请高手帮助有关数据行列变换

现有数据

ID  QuestionID   OptionID   Answer
1      20                    70            5
1      20                    72             4
1       50                   60            1
1        50                   65           4
2      20                    70            3
2      20                    72             2
2       50                   60            5
2        50                   65           1        
......

希望转换成

ID    20_70   20_72   50_60  50_65
1        5           4            1         4
2       3             2            5        1
.......

非常感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:格式变换 格式变 question Option Answer 请教 SAS 格式变换

回帖推荐

vickiling 发表于2楼  查看完整内容

试一下这个: data a; input id qid oid answer; datalines; 1 20 70 5 1 20 72 4 1 50 60 1 1 50 65 4 2 20 70 3 2 20 72 2 2 50 60 5 2 50 ...

本帖被以下文库推荐

沙发
vickiling 发表于 2009-7-8 00:26:09 |只看作者 |坛友微信交流群
试一下这个:
data a;
input id qid oid answer;
datalines;
1      20                    70            5
1      20                    72             4
1       50                   60            1
1        50                   65           4
2      20                    70            3
2      20                    72             2
2       50                   60            5
2        50                   65           1
;
run;

data b;
set a;
newid=trim(qid)||'_'||trim(left(oid));
drop qid oid;
run;

proc transpose data=b out=c(drop=_NAME_);
by id;
var answer;
id newid;
run;

结果看上去是这样的:
   Obs    id    _20_70    _20_72    _50_60    _50_65

                        1      1       5         4         1         4
                        2      2       3         2         5         1
变量名是不能以数字开头的
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

藤椅
crackman 发表于 2009-7-8 00:46:23 |只看作者 |坛友微信交流群
呵呵 不错
运行可以了

使用道具

板凳
andy520 发表于 2009-7-8 10:13:03 |只看作者 |坛友微信交流群
data a;
input id qid oid answer;
newid=trim(qid)||'_'||trim(left(oid));
drop qid oid;
datalines;
1      20                   70           5
1      20                   72           4
1      50                   60           1
1      50                   65           4
2      20                   70           3
2      20                   72           2
2      50                   60           5
2      50                   65           1
;
run;
proc transpose data=a out=b(drop=_NAME_);
by id;
var answer;
id newid;
run;
这样写效果好一些

使用道具

报纸
zespri 发表于 2009-7-8 10:56:31 |只看作者 |坛友微信交流群
万分感谢, 这里高手真多.

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-2 02:43