Я ищу какое-нибудь решение, связанное с tidyverse, для следующей проблемы:
df <- tribble(
~group, ~cond1, ~cond2, ~y,
1, 1, 1, 1,
1, 1, 99, NA,
1, 1, 1, NA,
2, 1, 1, 1,
2, 1, 1, NA,
2, 1, 1, NA,
) %>%
group_by(group) %>%
mutate(y = ifelse(cond1 != 99 &
cond2 != 99,
nth(y, 1),
y)
)
Как видите, я хочу обновить свою переменную y
в соответствии с предыдущими значениями cond1
и cond2
в данной группе. В приведенном выше фрагменте новое значение y
задается nth(y,1)
, как я могу адаптировать этот код, чтобы сделать его более общим, предпочтительно с помощью инструментов tidyverse?
Я хотел бы добавить итерации, в которых после работает
mutate(y = ifelse(cond1 != 99 &
cond2 != 99,
nth(y, 1),
y))
Я бы повторил процесс, используя nth(y,2)
, nth(y,3)
и так далее ... до некоторого числа, скажем, 5 (при условии, что мой реальный набор данных, конечно, намного больше).