Re: [程式] SAS 用merge 做 match
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://www.ptt.cc/bbs/Statistics/M.1433299741.A.E04.html
推
06/03 16:56, , 1F
06/03 16:56, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):