楼主: hwy91
1570 2

SAS小白求教 [推广有奖]

  • 0关注
  • 3粉丝

已卖:885份资源

硕士生

78%

还不是VIP/贵宾

-

威望
0
论坛币
11179 个
通用积分
5.6150
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
499 点
帖子
118
精华
0
在线时间
228 小时
注册时间
2013-9-25
最后登录
2019-8-21

楼主
hwy91 发表于 2014-4-7 12:50:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
sas已经忘的差不多了,今天从头复习,发现还是很多不会

有这样一个数据
data score;
input id type $ score;
cards;
1 math 89
2 chinese 79
3 math 98
2 eng 81
3 phy 90
;

我想把同一个id的不同科目合并到同一行,貌似sort和merge语句都不行,有木有大神指点一下

另外有没有大神推荐一两本SAS的好书,本人有一定的基础,现在学的是金工方面的,不知道该看哪方面的
二维码

扫码加我 拉你入群

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

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

关键词:Chinese score Merge cards Input

沙发
zhengbo8 发表于 2014-4-7 13:41:58
  1. data score;
  2. input id type $ score;
  3. cards;
  4. 1 math 89
  5. 2 chinese 79
  6. 3 math 98
  7. 2 eng 81
  8. 3 phy 90
  9. ;

  10. proc sql noprint;

  11.         create table result as
  12.                 select id,sum(score) as total from score group by id;
  13. quit;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

藤椅
V_Drift 发表于 2014-4-7 13:46:20
我的方法比较简单粗暴,不知道SAS高手有没有更加有效率的方法。

proc sort data=score out=score1;
by id;
run;

proc transpose data=score1 out=score2(drop=_name_) prefix=typ;
by id;
var type;
run;

proc transpose data=score1 out=score3(drop=_name_)  prefix=scr;
by id;
var score;
run;

data score4;
merge score2
      score3;
by id;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 14:47