Вы можете обнаружить последние NA
с помощью which
v1[(tail(which(is.na(v1)), 1) + 1):length(v1)]
# [1] 7 8 9 10 11 12
Однако наиболее общий - как указал @ MrFlick - выглядит так:
tail(v1, -tail(which(is.na(v1)), 1))
# [1] 7 8 9 10 11 12
, который также правильно обрабатывает следующий случай:
v1[13] <- NA
tail(v1, -tail(which(is.na(v1)), 1))
# numeric(0)
Чтобы получить также нулевой случай NA
,
v1 <- 1:13
мы можем сделать
if (any(is.na(v1))) tail(v1, -tail(which(is.na(v1)), 1)) else v1
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13
Данные
v1 <- c(1, 2, 3, NA, 5, 6, NA, 7, 8, 9, 10, 11, 12)