楼主: zespri
1443 4

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

  • 0关注
  • 1粉丝

VIP

已卖:1278份资源

讲师

50%

还不是VIP/贵宾

-

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

楼主
zespri 发表于 2009-7-7 14:33:22 |AI写论文

+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
拉您进交流群
GMT+8, 2025-12-25 08:53