看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]: 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
imaltar: 其實用GOOGLE 應該可以找到一些可用的語法 06/02 22:04
Jarlan: 先排序兩筆資料,給個ID再串? 06/02 22:05
MOONY135: 同年齡要怎樣處理 老師有說嗎 06/03 00:42
MOONY135: if else可以用? 06/03 00:47
ya1357977889: if eles 可以 因為年齡取到小數點後 真的一樣取其 06/03 11:31
ya1357977889: 中一筆 現在在看一樓大給的裡面有沒有可以用的語法 06/03 11:31
MOONY135: 可以看一下我的語法 06/03 16:18
MOONY135: merge多對多不好用 我也想知道多對多怎樣寫 06/03 16:19