全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10793 5
2017-03-26
sas中横向合并两个数据集时,如果这两个数据集中有多个变量是重合的,但是变量的取值不同,如data a1;
input id$ year$ f1 f2 f 3;
datalines;
1 2002 11 15 22
1 2003 12 23 44
1 2004 14 55 66
2 2004 44 54 11
2 2009 89 22 56
;
run;
data a2;
input id year$ f1 f4 f5;
datalines;
1 2002 11 122 43
1 2003 22 2   46
1 2004 14 50  70
2 2004 78 23  34
2 2009  89  44  20
;
run;

我想得到这样的结果:
1 2002 11 15 22  122 43
1 2003 12 23 44    .  .

1 2003 22    .   .   2   46
1 2004 14 55 66  50 70
2 2004 44 54 11 .    .
2 2004 78   .   .    23 34
2 2009 89 22 56 44  20

就是同一变量下取值不同的记录不合并在一行,像ID=1 year=2003年的情况那样,有两行记录,请问怎么用sas实现呢,感觉用merge搞不出来。
二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-26 15:37:46
用append试试
二维码

扫码加我 拉你入群

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

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

2017-3-26 15:57:22
data a3;
merge a1 a2;
by id year f1;
run;
二维码

扫码加我 拉你入群

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

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

2017-3-26 16:55:14
l1i2n3i4n5g 发表于 2017-3-26 15:57
data a3;
merge a1 a2;
by id year f1;
谢谢,但是如果重复的变量有很多怎么办呢,因为我现在做的 这个里面特别多的重复变量,而且不知道具体都有哪些变量是重复的,有没有另外的办法呢,感谢啦
二维码

扫码加我 拉你入群

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

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

2017-3-30 15:30:48
data aa;
set a1 a2;
run;
以上為垂直合併。
相同variable的數值會垂直排列,若有任一dataset沒有該variable,那部分會以missing value表示。
二维码

扫码加我 拉你入群

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

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

2019-9-23 16:43:53
update语句
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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