【发布时间】:2013-07-11 11:16:56
【问题描述】:
我正在尝试清理一些数据,并希望将零替换为上一个日期的值。我希望下面的代码有效,但它没有
temp = c(1,2,4,5,0,0,6,7)
temp[which(temp==0)]=temp[which(temp==0)-1]
返回
1 2 4 5 5 0 6 7
而不是
1 2 4 5 5 5 6 7
这是我所希望的。 有没有不循环的好方法?
【问题讨论】:
-
代码完美运行。它用前一个值替换零值。在您的情况下,恰好是 0。您需要重新考虑针对特殊情况的策略,例如手头的情况。我建议你使用函数
rle。