2011-02-08 43 views
2

我使用timeSeries程序包,特别是align函数。我的数据是虚假的,我想通过传播最后一个可用值来填充这些NAs。但似乎align()直到样品结束时才会结束,如果它结束了NA。timeSeries对齐未完成其作业

举个例子:我有一个不结盟的时间序列

> 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 

它正确填写TS.2 4号和TS .4在4日和7日,但没有填写TS.1在8日5日,或TS.3在7日和8日2日。我期望align填补他们...

我误解功能?有没有办法解决这个问题? 感谢您的帮助

回答

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 
+0

感谢Joshua,它完美的作品。实际上,我将它与'align'结合为'align',这也使得时间序列是正常的,而不是`na.locf`的情况。 – 2011-02-08 23:04:29