Нахождение начального значения в столбце и увеличение на 1 до последнего года - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь найти начальное значение фиктивной переменной и увеличить его на 1.

Вот пример данных:

id = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4) 
date = c(2010,2011,2012,2013,2014,2010,2011,2012,2013,2014,2010,2011,2012,2013,2014,2010,2011,2012,2013,2014) 
income = c(100,20,45,50,70,45,66,21,45,234,124,5325,645,23234,2352,456,24234,34656,5633,13524) 
participation = c(0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1) 
df <- data.frame(id,date,income,participation)

Чтобы описать эти данные, я 'Мы создали продольные данные о доходах каждого человека и участии в мероприятиях за период с 2010 по 2014 год. Я пытаюсь увидеть влияние участия на их сверхурочные доходы.Я представляю следующее:

id = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4) 
date = c(2010,2011,2012,2013,2014,2010,2011,2012,2013,2014,2010,2011,2012,2013,2014,2010,2011,2012,2013,2014) 
income = c(100,20,45,50,70,45,66,21,45,234,124,5325,645,23234,2352,456,24234,34656,5633,13524) 
participation = c(0,0,0,1,2,1,2,3,4,5,1,2,3,4,5,0,0,0,1,2) 
df <- data.frame(id,date,income,participation)

Я, честно говоря, потерян, потому что ценность участия уже является фиктивной переменной.Есть ли способ объединить участие и дату для создания приращений?Любая идея будет полезна.Спасибо!

1 Ответ

0 голосов
/ 29 января 2019

После группировки по 'id', получите cummax 'участия' и затем накапливайте сумму

library(dplyr)
df %>% 
    group_by(id) %>% 
    mutate(participation = cumsum(cummax(participation)))
...