最高的观察结果

时间:2016-10-19 10:57:56

标签: r

我试图在向量中向前移动最高的观察值,替换NAs和低于最后一个最高观察值的任何值。 E.g。

c(1,2,3,NA,NA,2,NA,NA,4,NA,NA)

会变成

c(1,2,3,3,3,3,3,3,4,4,4)

以矢量化方式执行此操作的最佳方式是什么?

1 个答案:

答案 0 :(得分:4)

x <- c(1,2,3,NA,NA,2,NA,NA,4,NA,NA)
y <- x
y[is.na(y)] <- -Inf
y <- cummax(y)
y[y == -Inf] <- NA
#[1] 1 2 3 3 3 3 3 3 4 4 4