Я довольно безуспешно гуглял, как условно увеличивать тидиверс. То, что я хочу сделать, это проверить, если значение в столбце больше, чем x
, и, если это так, увеличить целое число на единицу. Каждое наблюдение начинается с 1.
Пример кода:
id = c(1, 1, 1, 2, 3, 3, 3, 3, 4)
time = c(20, 30, 101, 33, 50, 101, 30, 110, 30)
df_x = data.frame(id = id, time = time)
Выход:
id time
1 1 20
2 1 30
3 1 101
4 2 33
5 3 50
6 3 101
7 3 30
8 3 110
9 4 30
Желаемый выход:
increment = c(1, 1, 2, 1, 1, 2, 2, 3, 1)
df_x$increment = increment
id time increment
1 1 20 1
2 1 30 1
3 1 101 2
4 2 33 1
5 3 50 1
6 3 101 2
7 3 30 2
8 3 110 3
9 4 30 1
Код для него будет выглядеть примерно так:
df_x %>%
group_by(id) %>%
mutate(ifelse(time <= 100, ?, ?))
Любая помощь будет принята с благодарностью.