我有兩個SAS數據集,我試圖合併一個共同的變量(在變量下方的mcve是record
)。雖然這種合併有一個條件,那就是我遇到的問題。我需要record
與filetwo
合併fileone
,但是從filetwo
與fileone
匹配的行必須滿足以下條件:intervention_date
必須是後記錄case_start
(和先下一case_start
如果record
有一個以上的case_start
)。SAS通過合併附加條件
下面是fileone
一個例子:
data fileone;
input record case_start :date9. age;
format case_start date9.;
datalines;
1 01jun2015 10
1 15jan2016 11
1 19jul2016 11
2 11aug2016 15
;
run;
下面是filetwo
一個例子:
data filetwo;
input record intervention_date :date9. county :$10.;
format intervention_date date9.;
datalines;
1 24mar2016 Denver
1 10sep2015 Denver
1 20oct2016 Denver
2 15nov2016 Boulder
2 12dec2016 Boulder
;
run;
要指出的幾件事情,一個record
從fileone
可以有多個case_start
日期(見record=1
)並且對於每個record
和case_start
日期,來自filetwo
的record
可以具有多個intervention_date
(見record=2
)。
更具體而言,這是我想產生:
data what_merge_should_look_like;
input record case_start :date9. age intervention_date :date9. county :$10.;
format case_start intervention_date date9.;
datalines;
1 01jun2015 10 10sep2015 Denver
1 15jan2016 11 24mar2016 Denver
1 19jul2016 11 20oct2016 Denver
2 11aug2016 15 15nov2016 Boulder
2 11aug2016 15 12dec2016 Boulder
;
run;
現在,像一個簡單的合併不起作用,因爲它只能通過record
匹配:
/* data already sorted on by variable */
data fileone_two;
merge fileone
filetwo;
by record;
run;
是否有任何建議合併這兩個數據集與這個日期條件?這可能來自一個簡單的SAS數據步驟,因爲我對proc sql不是很熟悉?我已經看到這與proc sql完成,但想知道關於數據步驟。