Вот некоторые примеры данных:
dat <- data.frame(col0 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
col1 = c(NA, 100, 100, NA, 200, 200, NA, 300, 300),
col2 = c(1, 2, 3, 1, 2, 3, 1, 2, 3))
Я хотел бы изменить любое значение NA в col1, когда col2 = 1, со значением, которое следует за NA в col1.
лучшее, что я могу понять, это
dat <- dat %>%
mutate(col1 = replace(col1, which(is.na(col1) &
col2 == 1), 100))
Но я не мог понять, как получить следующее значение col1 ...
В идеале, решение будет использовать tidyverse.
Мой фактический набор данных довольно большой, поэтому замена NA в col1 на c (100, 200, 300) не будет эффективным способом для продолжения.