Hello again,
I was wondering if anyone can help point me in the direction of what code I should try to make what I'm hoping for work.
Basically, I have observation in Person-Months for a span of 5 years (i.e. ID1-1... ID1-60, ID2-1... ID2-60, etc.). I have a variable that indicates an event of interest during the month, and I was hoping to create a new dataset that has data only from 2 years after the first event. I've tried using a IF/THEN with a KEEP statement, but am having trouble identifying the two years post event.
For reference, my dataset has 3 variables: ID, MonthYear, and Event (binary)
Does anyone have an idea?
If your data are already in id, monthyear order (otherwise if you sort it to be in that order), then I think that the following will do what you want:
data want; set have; by id; if first.id then counter=0; if counter eq 0 and event eq 1 then do; counter=1; output; end; else if 1<=counter<=24 then do; counter+1; output; end; run;
Art, CEO, AnalystFinder.com
If your data are already in id, monthyear order (otherwise if you sort it to be in that order), then I think that the following will do what you want:
data want; set have; by id; if first.id then counter=0; if counter eq 0 and event eq 1 then do; counter=1; output; end; else if 1<=counter<=24 then do; counter+1; output; end; run;
Art, CEO, AnalystFinder.com
That worked perfectly! Thank you so much!!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.