私は共通の変数(by変数の下のmcveにはrecord
)と一緒にマージしようとしている2つのSASデータセットがあります。このマージの条件がありますが、それは私が問題を抱えていることです。私はrecord
によってfiletwo
とfileone
をマージする必要がありますが、fileone
と一致filetwo
からの行には、次の条件を満たしている必要があります:intervention_date
はcase_start
それが記録した後でなければなら(そして次のcase_start
前record
は、複数のcase_start
を持っている場合)。ここでSAS by merge with additional condition
は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;
fileone
からrecord
が複数case_start
の日付を持つことができ、いくつかのことを指摘するには(record=1
を参照してください)それぞれrecord
とcase_start
の日付の場合、record
からfiletwo
までは複数の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;
これらの2つのデータセットをこの日付条件でマージするよう提案はありますか?私はproc sqlにあまり慣れていないので、これは簡単なSASデータステップから可能ですか?私はこれをproc sqlでやってみましたが、データステップについて知りたいと思います。