【问题标题】:Calculate difference of two xts time series when values are at different times当值在不同时间时计算两个 xts 时间序列的差异
【发布时间】:2011-12-07 14:47:58
【问题描述】:

我在 R 中有两个 xts 时间序列,并且想要计算时间序列值在彼此最接近的时间之间的差异。也就是说,如果我的两个索引是:

[1] (10/10/05 13:00:00) (10/10/05 14:00:00) (10/10/05 14:23:00)

[1] (10/10/05 12:38:00) (10/10/05 12:53:00) (10/10/05 12:59:00) (10/10/05 13:08:00) (10/10/05 13:23:00)
[6] (10/10/05 13:38:00) (10/10/05 13:53:00) (10/10/05 14:23:00) (10/10/05 15:05:00) (10/10/05 15:11:00)

我想计算以下值的差异:

  • 13:00 和 12:59
  • 14:00 和 13:53
  • 14:30 和 14:23

我该怎么做?来自zooall=FALSE 的标准merge 方法不会做我想要的,因为索引必须完全相等才能正确合并。

有什么想法吗?

【问题讨论】:

    标签: r time-series xts zoo


    【解决方案1】:

    您没有提供可重现的示例,因此我无法为您提供具体的解决方案。一般可以使用align.time将每个对象的索引值更改为相似的周期,也可以合并使用na.locf来填补缺失值。然后你可以在两个系列之间做任何你想做的操作。

    【讨论】:

    • 感谢您的回复。我尝试过使用align.time,但这似乎需要几秒钟的时间来对齐(例如60*60 与每小时对齐),而我想与另一个数组中的时间对齐。 na.locf 似乎很有用 - 但它只会推进最后一次观察,而我想要最接近的观察(例如,如果我想要 13:00 的值,最后一次观察是在 12:30,下一次观察是在 13:01我想要 13:01 的值)。有什么办法吗?
    • 我必须考虑一下...我似乎记得有人问过一个非常相似的问题,但我不记得是在 SO 还是 R-SIG-Finance 上。一个小的示例数据集和您想要的输出将非常有帮助。
    【解决方案2】:

    我正在考虑这样的事情:对于第一个系列的每个成员,您根据它们的时间索引将其插入到第二个系列中,然后计算插入的第一个系列成员的索引与第一个系列成员的索引之间的绝对差异前面和后面的第二个系列成员,取索引之间的绝对差异最小的值之间的对应差异。

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2017-06-16
      相关资源
      最近更新 更多