作者MOONY135 (谈无慾)
看板Statistics
标题Re: [程式] SAS 用merge 做 match
时间Wed Jun 3 10:48:52 2015
merge 对於多对多 没啥用处...
我这边的巨集你修改一下变成 do 应该也是可以做
这边有 do的参考资料
http://crackman.net/?p=1194
%let setid=%sysfunc(open(infomes.data1,i));
%let n=%sysfunc(attrn(&setid,nobs));
%put obsnum=&n; /*抓资料集看有多少笔资料*/
data first_set;
set infomes.data1(firstobs=1 obs=1); /*抓出有病的第一笔*/
run;
data step1;
merge first_set infomes.data2; /*merge 没病的所有笔数*/
by start_date;
minus_age=abs(Age_A-Age_B);
run;
proc sort data=step1;by minus_age; run;
data final_set;
set step1(firstobs=1 obs=1);
run;
%macro Divided;
%do i=2 %to &n;
data second_set;
set infomes.data1(firstobs=&i obs=&i);
run;
data step1;
merge second_set infomes.data2;
by start_date;
minus_age=abs(Age_A-Age_B);
run;
proc sort data=step1;by minus_age; run;
data final_set;
set step1(firstobs=1 obs=1) final_set;
run;
%end;
%mend Divided;
%Divided
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.215.137
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1433299741.A.E04.html
1F:推 ya1357977889: 谢谢你 看的懂 我试试看 06/03 16:56