全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6563 8
2012-10-31
两个数据集,同一个变量id,大部分数据相同,但有少部分不同的值,怎么找出两个数据集中该变量值不匹配的观测?

如data a 中id 取值为1,3,4,6  data b中id取值为1,2,3,4 那么要找出的值就是2,6。

求各位高手不吝用各种data merge或proc sql解决。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-31 16:00:35
merge的话是not (ina and inb)
sql做full join的话类似
sql还可以做(union) except (intersect)

二维码

扫码加我 拉你入群

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

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

2012-10-31 16:01:11
merge的话是not (ina and inb)
sql做full join的话类似
sql还可以做(union) except (intersect)
二维码

扫码加我 拉你入群

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

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

2012-10-31 16:15:29
data a;
input id;
cards;
1
3
4
6
;
data b;
input id;
cards;
1
2
3
4
;
run;

/*solution1*/
data c;
merge a(in=a) b(in=b);
by id;
aa=a;bb=b;
run;
/*表c中如果aa和bb都等于1,就证明两张表中都有该数据,否则为相异数据*/

/*solution2*/
proc sql;
create table c as
select id from
(select id from a union select id from b) t
where t.id not in
(select id from a intersect select id from b);
quit;
/*(a∪b)-(a∩b)*/


二维码

扫码加我 拉你入群

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

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

2012-10-31 16:17:52
select distinct
二维码

扫码加我 拉你入群

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

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

2012-10-31 19:41:11
data a;
input id;
cards;
1
3
4
6
;
data b;
input id;
cards;
1
2
3
4
;
run;
proc sort data=a;by id ;run;
proc sort data=b;by id ;run;
data c;
merge a(in=a) b(in=b);
if a and b;
by subjid;
run;
data d;
merge a b;
by subjid;
x=1;
run;
data dd;
merge c d;
by id;
if x^=1;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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