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

Hi,

 

I want to isolate the first pre-and post observations. 

 

For example,

 

data example;

input id year event;

datalines;

a 1990 0

a 1991 0

a 1992 0

a 1993 1

a 1994 0 

a 1995 0

a 1996 1

a 1997 0

b 1993 0

b 1994 0

b 1995 1

b 1996 0

b 1997 1

b 1998 0

b 1999 0

;

run;

 

I want to get this dataset. like..

 

data hope;

input id year event;

datalines;

a 1990 0

a 1991 0

a 1992 0

a 1993 1

a 1994 0 

a 1995 0

 

b 1993 0

b 1994 0

b 1995 1

b 1996 0

 

;

run;

 

please help!

1 ACCEPTED SOLUTION

Accepted Solutions
PeterClemmensen
Tourmaline | Level 20

Something like this?

 

data want(drop=flag);
   set example;
   by id;
   if first.id then flag=0;
   if event=1 then flag+1;
   retain flag;
   if flag<2;
run;

View solution in original post

6 REPLIES 6
PeterClemmensen
Tourmaline | Level 20

I don't follow the logic here. Please be more specific.

hkim3677
Calcite | Level 5
Each id has two events. So, I want to remove observations as of the second event year by id.
PeterClemmensen
Tourmaline | Level 20

Something like this?

 

data want(drop=flag);
   set example;
   by id;
   if first.id then flag=0;
   if event=1 then flag+1;
   retain flag;
   if flag<2;
run;
hkim3677
Calcite | Level 5
Thank you!
novinosrin
Tourmaline | Level 20
data example;

input id $ year event;

datalines;
a 1990 0
a 1991 0
a 1992 0
a 1993 1
a 1994 0 
a 1995 0
a 1996 1
a 1997 0
b 1993 0
b 1994 0
b 1995 1
b 1996 0
b 1997 1
b 1998 0
b 1999 0
;

run;

data want;
call missing(_e,__e);
do until(last.id);
set example;
by id year;
if  event and not _e then _e=1;
else if event and _e then __e=1;
if not __e then output;
end;
drop _:;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 6 replies
  • 1564 views
  • 0 likes
  • 3 in conversation