Hi guys,
suppose to have the following dataset:
data DB;
input ID :$20. Admission :date09. Discharge :date09. Range1 :date09. Range2 :date09.;
format Admission date9. Discharge date9. Range1 date9. Range2 date9.;
cards;
0001 13JAN2017 25JAN2017 30DEC2016 24FEB2017
0001 22FEB2017 07MAR2017 08FEB2017 06APR2017
0001 27APR2017 16MAY2017 13APR2017 15JUN2017
0001 30JAN2019 04MAR2019 16JAN2019 03APR2019
0002 28DEC2014 03JAN2015 14DEC2014 02FEB2015
0002 03MAR2015 12MAR2015 20FEB2015 02APR2015
;
and a second dataset:
data DB1;
input ID :$20. Visit_date :date09. Visit;
format Visit_date date9. ;
cards;
0001 26JAN2017 1
0001 10FEB2017 1
0002 22FEB2015 4
;
Is there a way to obtain the following?
data DB2;
input ID :$20. Admission :date09. Discharge :date09. Range1 :date09. Range2 :date09. Visit;
format Admission date9. Discharge date9. Range1 date9. Range2 date9.;
cards;
0001 13JAN2017 25JAN2017 30DEC2016 24FEB2017 1
0001 22FEB2017 07MAR2017 08FEB2017 06APR2017 1
0001 27APR2017 16MAY2017 13APR2017 15JUN2017 0
0001 30JAN2019 04MAR2019 16JAN2019 03APR2019 0
0002 28DEC2014 03JAN2015 14DEC2014 02FEB2015 0
0002 03MAR2015 12MAR2015 20FEB2015 02APR2015 4
;
In other words, if the visit_date (DB1) occurs in the range Range1-Range2 of DB for each patient (ID) then it will be reported in DB to obtain DB2.
Logic: 1) check if the visit_date in DB1 occurs between Range1 and Range2 of DB for each ID
2) if the visit_date in DB1 occurs between Range1 and Range2 in DB for each ID, then create DB2. DB2 is as DB + the visit value ("visit" variable of DB1) where it occurs (i.e., at the corresponding range)
Thank you in advance
... View more