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!!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.