shevaze 发表于 2020-9-28 16:46
抱歉再次打扰,请问如果d2里有性别和省份充分的,也需要匹配,怎么办
试试下面的code:
data d1;
input name $ sex $ prov $;
datalines;
张三 男 山东
李四 男 江苏
王五 女 山东
郑六 女 江苏
狗蛋 男 山东
大瓜 女 江苏
狗娃 男 山东
;
run;
data d2;
input name $ sex $ prov $;
datalines;
test1 男 山东
test2 男 江苏
test3 女 山东
test4 女 江苏
test5 男 北京
;
run;
proc sort data=d2 nodupkey;
by name;
run;
Data d3;
set d1 d2;
run;
Data IDlist (drop=Name sex prov);
set D2;
N=_N_;
ID=cats(sex, prov);
Run;
%macro DS(N,ID);
Data DS&N;
set D3;
where cats (sex, prov)="&ID";
run;
%mend;
Data _null_;
set IDList;
call execute('%DS('||N||', '||Strip(ID)||');');
run;