【问题标题】:Merge two xts time-series in a single stream将两个 xts 时间序列合并到一个流中
【发布时间】:2012-05-23 07:03:04
【问题描述】:

鉴于这 2 个 xts 对象:

> X
2012-02-01 09:31:40 2012-02-01 09:31:50 2012-02-01 09:33:30 
         -3.8993007          -2.0860621          -0.6308867
> Y
2012-02-01 09:32:00 2012-02-01 09:32:10 2012-02-01 09:32:20
          1.1983066          -0.2071149           0.3887806

如何按时间加入它们并拥有一个索引为 9:31:40、9:31:50、9:32:00、9:32:10、9:32:20、9 的列对象: 33:30?也就是说,我需要在一个序列中流式传输这两个对象(而不是将两列 X/Y 合并到一个组合矩阵中)。

【问题讨论】:

  • 那些看起来像动物园对象,而不是 xts 对象(xts 对象总是有 2 个维度)。
  • 好的。所以,你需要 rbind(as.xts(X), as.xts(Y)) ;-)
  • 是的,rbind(as.xts()) 有效!我在 xts 对象上调用 predict() 并返回一个动物园。您想发布答案吗?
  • @RobertKubrick:在 xts 对象上调用 predict 没有意义。 predict 方法用于模型类型的类(例如 arlmnls 等)。没有predict.zoo 方法。
  • @RobertKubrick:从技术上讲,predict 有两个参数:object...。您正在使用predict.lm,它需要两个以上的参数,但第二个参数是newdata,它应该是一个data.frame。如果你给它一个 zoo 对象,请小心,因为这不是函数所期望的。

标签: r merge time-series xts


【解决方案1】:
> X <- xts(rnorm(1:10), Sys.time() + 1:10)
> Y <- xts(rnorm(1:10), Sys.time() - 10:1)
> rbind(X, Y)
                          [,1]
2012-05-15 13:07:25  1.1022975
2012-05-15 13:07:26 -0.4755931
2012-05-15 13:07:27 -0.7094400
2012-05-15 13:07:28 -0.5012581
2012-05-15 13:07:29 -1.6290935
2012-05-15 13:07:30 -1.1676193
2012-05-15 13:07:31 -2.1800396
2012-05-15 13:07:32 -1.3409932
2012-05-15 13:07:33 -0.2942939
2012-05-15 13:07:34 -0.4658975
2012-05-15 13:07:36  0.1340882
2012-05-15 13:07:37 -0.4906859
2012-05-15 13:07:38 -0.4405479
2012-05-15 13:07:39  0.4595894
2012-05-15 13:07:40 -0.6937202
2012-05-15 13:07:41 -1.4482049
2012-05-15 13:07:42  0.5747557
2012-05-15 13:07:43 -1.0236557
2012-05-15 13:07:44 -0.0151383
2012-05-15 13:07:45 -0.9359486

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2013-02-28
    • 2019-04-16
    • 2020-03-20
    相关资源
    最近更新 更多