## Selecting time-frame for observations

Solved
Occasional Contributor
Posts: 16

# Selecting time-frame for observations

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?

Accepted Solutions
Solution
‎04-12-2017 02:32 PM
PROC Star
Posts: 8,150

## Re: Selecting time-frame for observations

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

All Replies
Solution
‎04-12-2017 02:32 PM
PROC Star
Posts: 8,150

## Re: Selecting time-frame for observations

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

Occasional Contributor
Posts: 16

## Re: Selecting time-frame for observations

That worked perfectly!  Thank you so much!!

☑ This topic is solved.