BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
AviS
Fluorite | Level 6

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

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

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;
PG

View solution in original post

1 REPLY 1
PGStats
Opal | Level 21

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;
PG

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1251 views
  • 1 like
  • 2 in conversation