/*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)*/
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;
data data1;
input id@@;
cards;
1 3 4 6
;
run;
data data2;
input id@@;
cards;
1 2 3 4
;
run;
proc sql;
create table data3 as
select id as id1 from data1
where id not in (select id from data2);
run;
proc sql;
create table data4 as
select id as id2 from data2
where id not in (select id from data1);
run;
data data5;
merge data3 data4;
run;
proc print data=data5;
run;