我正在处理一个xts对象,其中一个列中包含一些0,我需要将它们替换为序列中找到的不同于0的最后一个值。
例如,我在这里使用常规R向量进行简化:
v = c(1, 2, 3, 0, 0, 0)
我需要使用最后一个值更改所有0!序列中的= 0,在本例中为3.结果向量应为:
> v
[1] 1 2 3 3 3 3
如何实现这一点,可能使用transform()或其他向量操作?
答案 0 :(得分:4)
将零设置为NA
并使用na.locf
:
x <- .xts(c(1, 2, 3, 0, 0, 0), 1:6)
x[x==0] <- NA
na.locf(x)