У меня есть датафрейм с группой и идентификатором времени. Теперь я хочу создать новую переменную count, называемую X2
, в зависимости от предыдущих значений X1
в каждой группе.
Предположим, у меня есть следующий фрейм данных, переменные group
, time
, X1
и хочу создать X2
. Значение X2
должно быть переменной count, указывающей количество периодов (т. Е. Строк), поскольку X1
последний раз был равен 1 в данной группе. Если все предыдущие значения X1
равны 0, X2
должно отсутствовать.
group time X1 X2
1 1 1 0 NA
2 1 2 0 NA
3 1 3 1 NA
4 1 4 0 0
5 1 5 1 1
6 2 1 0 NA
7 2 2 1 NA
8 2 3 1 0
9 2 4 1 0
10 2 5 0 0
11 3 1 0 NA
12 3 2 0 NA
13 3 3 0 NA
14 3 4 1 NA
15 3 5 0 0
16 4 1 1 NA
17 4 2 0 0
18 4 3 0 1
19 4 4 0 2
20 4 5 1 3
data_test <- data.frame(
group = rep(1:4, each = 5),
time = rep(1:5, n = 4),
X1 = c(0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1),
X2 = c(NA, NA, NA, 0, 1, NA, NA, 0, 0, 0, NA, NA, NA, NA, 0, NA, 0, 1, 2, 3))
Я мог бы легко создать NA, используя команду if с cumsum()==0
. Тем не менее, я понятия не имею, как приблизиться к другой части, то есть создать счет.
Любая помощь будет высоко ценится - если это вообще возможно, используя dplyr
.
Большое спасибо .