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

Hi all,

I had this situation where I need to exclude all the ID's with history is 1 on the first observation. For example, in the below scenario there are multiple observations for each ID.  I want to delete all those ID's which had history of disease (=1) on the first observation. 

Data I have

IDOrder of occurrenceHistory
111
121
131
211
310
321
410
510
521

Data i want to keep

IDOrder of occurrenceHistory
310
321
410
510
521

 I tried so many time but i can't get the result I want. Please help me. Thanks in advance for the support. 

1 ACCEPTED SOLUTION

Accepted Solutions
yabwon
Onyx | Level 15

Assuming your data are already sorted properly, try this:

data have;
input ID	Order_of_occurrence	History;
cards;
1	1	1
1	2	1
1	3	1
2	1	1
3	1	0
3	2	1
4	1	0
5	1	0
5	2	1
;
run;

data want;
  do until(last.ID);
    set have;
    by ID;

    if first.ID = history then _N_ = 0;
    if _N_ then output;
  end;
run;

 

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



View solution in original post

2 REPLIES 2
yabwon
Onyx | Level 15

Assuming your data are already sorted properly, try this:

data have;
input ID	Order_of_occurrence	History;
cards;
1	1	1
1	2	1
1	3	1
2	1	1
3	1	0
3	2	1
4	1	0
5	1	0
5	2	1
;
run;

data want;
  do until(last.ID);
    set have;
    by ID;

    if first.ID = history then _N_ = 0;
    if _N_ then output;
  end;
run;

 

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



htht
Calcite | Level 5
Thank you Bart for your support.

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

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
  • 2 replies
  • 474 views
  • 1 like
  • 2 in conversation