Я пытаюсь получить индекс ближайшего ИСТИННОГО значения из столбца на основе записи другого столбца. Мой примерный фрейм данных выглядит следующим образом:
a <- c(FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)
b <- c(NA, NA, 3, NA, NA, NA, NA, 8, NA, NA, NA, 12, NA, NA, NA)
df <- data.frame(a, b)
Я хотел бы создать новый столбец, в котором будет указан индекс ближайшего ИСТИННОГО значения перед заданным значением из b
. Чтобы проиллюстрировать, полученный df
должен выглядеть следующим образом:
a b c
1 FALSE NA NA
2 TRUE NA NA
3 FALSE 3 2
4 FALSE NA NA
5 FALSE NA NA
6 TRUE NA NA
7 FALSE NA NA
8 FALSE 8 6
9 TRUE NA NA
10 TRUE NA NA
11 FALSE NA NA
12 FALSE 12 10
13 FALSE NA NA
14 FALSE NA NA
15 FALSE NA NA
Я знаю, что могу использовать max(which(df$a == TRUE))
, но я не знаю, как заставить его работать таким образом, чтобы он учитывал только индекс предыдущих значений. Спасибо!