Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 205372

R: creating variable conditionally based off two shift statements

$
0
0

I have a data set like the following:

id   age    mod  
1    1      1
1    5      0
1    6      1  
1    7      1
1    9      1   
2    3      0
2    4      1

And I'd like to create the variable first and give it a value of true only for the first occurrence of each episode of mod (each episode begins when mod==1). An episode can be defined as a series (or standalone day) of mod==1 in which age is incrementing by 1 or age is incrementing by 2. In other words, if age== 2 and mod==1, age==3 and mod==0 and age==4 and mod==1, ages 2-4 are still apart of the same series because they are still within 2 days of each other.

So ideally the final data set would look like this:

id   age    mod  first
1    1      1    TRUE
1    5      0    FALSE
1    6      1    TRUE
1    7      1    FALSE
1    9      1    FALSE
2    3      0    FALSE
2    4      1    TRUE

I've tried using lag statements within data.table and have not be successful.


Viewing all articles
Browse latest Browse all 205372

Trending Articles