全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3513 7
2011-06-14
悬赏 20 个论坛币 已解决
有三个数据集A、B、C,其中A最大包含几万条数据,变量也最多。B、C各几千条数据,变量也较少。现在想按照共同的姓名代码把ABC合并起来,然后把合并后的数据集分成(A交B, A交C, A中剩余)三部分,不知该如何操作?

最佳答案

guoluo 查看完整内容

data AB AC AD; merge A(in=x) B(in=y) C(in=z); by name; if x and y then output AB; if x and z then output AC; if x and not y and not z then output AD; run;
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-14 18:26:13
data AB AC AD;
merge A(in=x) B(in=y) C(in=z);
by name;
if x and y then output AB;
if x and z then output AC;
if x and not y and not z then output AD;
run;
二维码

扫码加我 拉你入群

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

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

2011-6-15 11:04:14
同意楼上的。
执行之前,请把A,B,C按照NAME排序。
二维码

扫码加我 拉你入群

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

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

2011-6-15 13:27:04
proc sql;
create table ab as
select a.*,b.* from a inner join b
on a.name=b.name;
quit;
产生ab的交集,相同字段的数据如果不是用别名,最后数据是a中的数据。
二维码

扫码加我 拉你入群

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

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

2011-6-16 15:45:48
非常感谢给及时的回复!!!
二维码

扫码加我 拉你入群

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

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

2011-6-16 17:41:09
但是还存在一个问题,A数据集中有的名字是重复出现的,但是在B或者C中不是重复出现,通过上述方法合并以后B或者C中的会重复相同的数据N次以吻合A中的数据,如何才能比较准确的合并
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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