[程式] SAS 用merge 做 match
[軟體程式類別]:
SAS (9.3)
[程式問題]:
用merge 做配對(年齡)
[軟體熟悉度]:
低(1~3個月)
[問題敘述]
恩~~基本上就是做match 知道可以用macro 或sql來做,
但是強者老師覺得我們程度還不高,要求我們用merge來做
且SQL MACRO目前真的還有點摸不懂
例子像這樣
在1999/1/1 有A病的人有5筆
start_date age477
1991/1/1 43
1991/1/1 32
1991/1/1 44
1991/1/1 27
1991/1/1 50
在1991/1/1 沒A病的人有10筆
start_date agen477
1991/1/1 42
1991/1/1 45
1991/1/1 39
1991/1/1 49
1991/1/1 40
1991/1/1 34
1991/1/1 46
1991/1/1 27
1991/1/1 54
1991/1/1 33
要做出有A病的人 對到一個沒病的人 且年齡差最小
像這樣
start_date age477 agen477
1991/1/1 43 42
1991/1/1 32 33
1991/1/1 44 45
1991/1/1 27 27
1991/1/1 50 49
[程式範例]:
libname c "G:\sas\icd";
libname a "G:\sas\icd";
proc sort data=c.all477; by start_date;
proc sort data=c.no477; by start_date;
run;
data a.ok477;
merge c.all477 c.no477;
by start_date;
run;
這個跑出來長這樣
start_date age477 agen477
1991/1/1 43 42
1991/1/1 32 45
1991/1/1 44 39
1991/1/1 27 49
1991/1/1 50 40
1991/1/1 50 34
1991/1/1 50 46
1991/1/1 50 27
1991/1/1 50 54
1991/1/1 50 33
有版友可以指導一下 怎麼產生理想的資料呢O__Oa
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.135.246.73
※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1433251812.A.465.html
推
06/02 22:04, , 1F
06/02 22:04, 1F
→
06/02 22:04, , 2F
06/02 22:04, 2F
推
06/02 22:05, , 3F
06/02 22:05, 3F
→
06/03 00:42, , 4F
06/03 00:42, 4F
→
06/03 00:47, , 5F
06/03 00:47, 5F
→
06/03 11:31, , 6F
06/03 11:31, 6F
→
06/03 11:31, , 7F
06/03 11:31, 7F
→
06/03 16:18, , 8F
06/03 16:18, 8F
→
06/03 16:19, , 9F
06/03 16:19, 9F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):