Re: [程式] SAS 用merge 做 match

看板Statistics作者 (談無慾)時間9年前 (2015/06/03 10:49), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
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
文章代碼(AID): #1LRciTu4 (Statistics)
文章代碼(AID): #1LRciTu4 (Statistics)