【问题标题】:R: Filling missing dates in a time series?R:在时间序列中填充缺失的日期?
【发布时间】:2011-04-03 02:26:30
【问题描述】:

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

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

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

我使用 na.locf 将 NA 替换为 las 观察。

我删除了 syntetic chron 序列。

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

【问题讨论】:

    标签: r time-series fill zoo


    【解决方案1】:

    如果您使用带有索引的“空”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"))
    

    【讨论】:

    • 如果我的时间增量是 15min 和 chron 会怎么样?谢谢
    • 根据我对?seq.dates 的简要了解,您似乎无法使用seq 创建日内chron 序列。我建议使用不同的索引类。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-12-08
      • 2018-09-02
      • 2015-12-03
      • 2021-06-01
      • 2022-01-15
      • 2019-05-16
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      相关资源
      最近更新 更多