向量中出现初始NA时,我想用NA替换该向量中的所有后续值。
例如,如果x = c(0, 0, NA, 0, 0, 1, 2)
我希望:x = c(0, 0, NA, NA, NA, NA, NA)
该怎么做?
答案 0 :(得分:1)
可以做到:
x <- ifelse(cumsum(is.na(x)) > 0, NA, x)
或更快速:
x[cumsum(is.na(x)) > 0] <- NA
输出:
[1] 0 0 NA NA NA NA NA
答案 1 :(得分:0)
v <- c(0,0, NA, 0, 0, 1, 2)
v[ as.logical(cummax(is.na(v))) ] <- NA
v
# [1] 0 0 NA NA NA NA NA
一个人也可以使用
v[ dplyr::cumany(is.na(v)) ] <- NA