R xts:转换时间序列中的所有0值,最后找到的值不等于0

时间:2012-03-30 14:47:58

标签: r transform xts

我正在处理一个xts对象,其中一个列中包含一些0,我需要将它们替换为序列中找到的不同于0的最后一个值。

例如,我在这里使用常规R向量进行简化:

v = c(1, 2, 3, 0, 0, 0)

我需要使用最后一个值更改所有0!序列中的= 0,在本例中为3.结果向量应为:

> v
[1] 1 2 3 3 3 3

如何实现这一点,可能使用transform()或其他向量操作?

1 个答案:

答案 0 :(得分:4)

将零设置为NA并使用na.locf

x <- .xts(c(1, 2, 3, 0, 0, 0), 1:6)
x[x==0] <- NA
na.locf(x)