如何在 R 中更改时间序列(XTS 或 ZOO)?

Posted

技术标签:

【中文标题】如何在 R 中更改时间序列(XTS 或 ZOO)?【英文标题】:How can I alter a time series (XTS or ZOO) in R? 【发布时间】:2011-03-14 13:56:15 【问题描述】:

我是 *** 的新手,对 R 也很陌生,但我搜索了很长时间,但找不到以下问题的答案。

我有许多数据文件是温度与时间序列的关系。我将 CSV 作为 ZOO 对象导入,然后转换为 XTS。一个正确的文件看起来像这样,一个小时和一个半小时的读数:

>head(master1)
                       S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650

但有些的时间值略有不同 - 即 23:59:00 而不是 00:00:00,或 00:29:00 而不是 00:30:00。

>head(master21)
                       S_21
2010-03-04 23:59:00  -0.593
2010-03-05 00:29:00  -0.908
2010-03-05 00:59:00  -1.034
2010-03-05 01:29:00  -1.223
2010-03-05 01:59:00  -1.349
2010-03-05 02:29:00  -1.538

我想更正这些时间序列,因为微小的差异对我的分析并不重要,并且我最终想要合并文件,因此每个时间序列需要具有相同的时间。

我想要一个命令,可以只说“将时间序列向前移动 1 分钟,但不要更改数据列(例如 S_21)。 我对gsub() 进行了一些更简单的更改,并考虑使用复杂的正则表达式来更改数据,然后再将其转换为 ZOO 或 XTS。我已经阅读了lag()diff(),但它们似乎相对于时间序列移动了数据值;如果我错了,请纠正我。

任何解决此问题的帮助将不胜感激。

【问题讨论】:

【参考方案1】:

试试

index(master21) <- index(master21) + 60    # adds a minute

这将为时间索引增加一分钟。然后您可以使用merge() 作为时间戳对齐。

更一般地说,zoo 包的小插曲对您也很有用。

【讨论】:

以上是关于如何在 R 中更改时间序列(XTS 或 ZOO)?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中将哪个时间序列类用于财务数据?

R语言时间序列数据应用xts

如何更改 plot.zoo 图中的(数量)x 轴刻度? (轴()失败)

时间序列 || plot.xts时间序列可视化

性能分析图表中的修改

如何将Excel中的导入文件转换为R studio中的xts文件