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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.