我正在使用timeSeries包,尤其是align
函数。我的数据很虚假,我希望通过传播最后一个可用值来填充NA。但似乎align()
如果以NA结束,则直到样本结束才会出现。
一个例子:我有一个不对齐的时间序列
> notAligned
GMT
TS.1 TS.2 TS.3 TS.4
2011-02-03 NA 1 4 8
2011-02-04 1 NA 2 NA
2011-02-07 5 6 NA NA
2011-02-08 NA 2 NA 9
如果我使用对齐功能,则返回此
> align(notAligned)
GMT
TS.1 TS.2 TS.3 TS.4
2011-02-03 NA 1 4 8
2011-02-04 1 1 2 8
2011-02-07 5 6 NA 8
2011-02-08 NA 2 NA 9
4号正确填写TS.2,4号和7号正确填写TS.4,但不会在8日用5填充TS.1,或用7号和8号用TS.3填充2.我会期待align
填补他们......
我误解了这个功能吗?有办法解决这个问题吗? 谢谢你的帮助
答案 0 :(得分:2)
我不知道为什么timeSeries::align
不起作用,但我只会使用zoo::na.locf
:
na.locf(notAligned, na.rm=FALSE)
# GMT
# TS.1 TS.2 TS.3 TS.4
# 2011-02-03 NA 1 4 8
# 2011-02-04 1 1 2 8
# 2011-02-07 5 6 2 8
# 2011-02-08 5 2 2 9