data have;
input id:32. event:$10. date:DATE9. reason:$8.;
format date DATE9.;
label id="id" event="event" date="date" reason="reason";
datalines;
1 entered 01JAN2020 .
1 discharged 01FEB2020 finished
2 entered 05MAR2021 .
2 discharged 15JUL2021 left
2 entered 20SEP2021 .
3 entered 05FEB2020 .
3 discharged 05MAR2020 finished
3 entered 11APR2021 .
3 discharged 01SEP2021 finished
4 entered 01DEC2018 .
4 discharged 01FEB2019 finished
4 entered 05MAR2019 .
4 discharged 06DEC2020 left
4 entered 03APR2021 .
;
run;
data want;
merge have(where=(date1_event='entered') rename=(event=date1_event date=date_1 reason=reason_1))
have(where=(date2_event='discharged') rename=(event=date2_event date=date_2 reason=reason_2));
by id;
output;
call missing(of _all_);
format date_1 date_2 mmddyy10.;
drop reason_1;
label date1_event=' ' date2_event=' ' date1_event=' ' date2_event=' ' date_1=' ' date_2=' ';
run;
... View more