18

我有一个缺少天数的动物园时间序列。为了填补它并有一个连续的系列,我做......

我从开始到结束生成一个 chron 日期时间序列。

我将我的系列与这个合并。

我使用 na.locf 用 las 观察代替 NA。

我删除了 syntetic chron 序列。

我可以更轻松地做同样的事情吗?也许有一些与频率相关的索引函数?

4

2 回答 2

8

如果您使用zoo带有索引的“空”对象,会稍微容易一些。

> x <- zoo(1:10,Sys.Date()-10:1)[c(1,3,5,7,10)]
> empty <- zoo(order.by=seq.Date(head(index(x),1),tail(index(x),1),by="days"))
> na.locf(merge(x,empty))
2010-08-14 2010-08-15 2010-08-16 2010-08-17 2010-08-18 
         1          1          3          3          5 
2010-08-19 2010-08-20 2010-08-21 2010-08-22 2010-08-23 
         5          7          7          7         10 

编辑:对于日内数据(使用 Gabor 的优秀xout=建议):

> index(x) <- as.POSIXct(index(x))
> na.locf(x, xout=seq(head(index(x),1),tail(index(x),1),by="15 min"))
于 2010-08-24T13:12:50.393 回答
7

动物园常见问题解答http://cran.r-project.org/web/packages/zoo/vignettes/zoo-faq.pdf的问题 13 对此进行了介绍,该问题使用 na.locf 的 xout= 参数来消除合并步骤. 确保您使用的是 zoo 1.6.4 或更高版本,因为此功能是最近添加的。

于 2010-08-24T16:19:21.227 回答