I have a dataset like below. There are 3 patients that visited the hospital multiple times, whether planned or unplanned. I would like to flag all the cases as planned = 1 once we find the first planned case.
data tr1;
input ptid$ day planned;
cards;
a 0 0
a 5 0
a 10 0
a 12 1
a 15 1
a 20 0
a 25 0
a 29 1
b 0 0
b 6 0
b 14 1
c 0 1
c 11 0
c 15 0
c 19 0
;
run;
I would like to have an output as below adding one extra flag. For ear patient (ptid) once it finds the first planed visit, I would like to have all the records after first planned visit as planned visit even if they are unplanned.
Thanks
ptid day planned plflag
a 0 0 0
a 5 0 0
a 10 0 0
a 12 1 1
a 15 1 1
a 20 0 1
a 25 0 1
a 29 1 1
b 0 0 1
b 6 0 1
b 14 1 1
c 0 1 1
c 11 0 1
c 15 0 1
Assuming your example is wrong for pationt b :
data want;
do until(last.ptid);
set tr1; by ptid;
plFlag = plFlag or planned;
output;
end;
run;
Assuming your example is wrong for pationt b :
data want;
do until(last.ptid);
set tr1; by ptid;
plFlag = plFlag or planned;
output;
end;
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.