2011-02-08 70 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