R 最高观测值结转
我试图将向量中的最高观察值向前推进,同时替换NAs和任何低于上一次最高观察值的值。例如R 最高观测值结转,r,R,我试图将向量中的最高观察值向前推进,同时替换NAs和任何低于上一次最高观察值的值。例如 c(1,2,3,NA,NA,2,NA,NA,4,NA,NA) 将成为 c(1,2,3,3,3,3,3,3,4,4,4) 以矢量化方式执行此操作的最佳方式是什么?x矢量化?它必须是迭代的,我不认为这可以并行化。出色地使用-Inf和cummax,第三步得到所需的输出,没有-Inf实例保留,第四步有什么具体原因吗step@Osssan向量开头可能有NA值。如果执行该步骤,您将获得可能不需要的-Inf值。 x &
c(1,2,3,NA,NA,2,NA,NA,4,NA,NA)
将成为
c(1,2,3,3,3,3,3,3,4,4,4)
以矢量化方式执行此操作的最佳方式是什么?
x矢量化?它必须是迭代的,我不认为这可以并行化。出色地使用-Inf
和cummax
,第三步得到所需的输出,没有-Inf
实例保留,第四步有什么具体原因吗step@Osssan向量开头可能有NA
值。如果执行该步骤,您将获得可能不需要的-Inf
值。
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