全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10956 8
2016-10-31
我的数据是这样的:      ID           Term

1

2151

1

2155

2

2151

2

2155

3

2151

4

2151

5

2151

5

2155

6

2151

7

2151

7

2155

8

2155

9

2155

10

2151




我要如何根据ID,把多行observations合并成每个ID一行是数据??我用proc sql折腾了很久都没成功,要哭死了T T
求助求助!!!!感激不尽!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-10-31 12:20:00
我知道也可以用retain,但是每个ID的数量不一样,我就蒙住了,求教各位大神T T
二维码

扫码加我 拉你入群

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

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

2016-10-31 12:52:56
同求,一样不懂
二维码

扫码加我 拉你入群

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

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

2016-10-31 13:33:48
如下可以吗?
方法1:
data tmp;
input ID Term;
datalines;
1        2151
1        2155
2        2151
2        2155
3        2151
4        2151
5        2151
5        2155
6        2151
7        2151
7        2155
8        2155
9        2155
10        2151
;
run;

proc sql;
        create table tmp_transpose as
        select id,
                        max(case when term=2151 then term else . end) as v2151,                       
                        max(case when term=2155 then term else . end) as v2155
        from tmp
        group by 1
        ;
quit;

proc print noobs;
run;

方法2
proc transpose data=tmp out=tmp_new;
        by id;
        id term;
        var term;
run;

proc print ;
run;
二维码

扫码加我 拉你入群

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

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

2016-10-31 14:11:50
baiyaoqian 发表于 2016-10-31 13:33
如下可以吗?
方法1:
data tmp;
二维码

扫码加我 拉你入群

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

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

2016-10-31 19:29:05
楼主没有提到,单观测的是否要按照大小排,提供一段不按大小排的代码,见笑。
复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群