我是Stackoverflow的新手,对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()
的内容,但它们似乎相对于时间序列移动了数据值;如果我错了,请纠正我。
非常感谢任何解决此问题的帮助。
答案 0 :(得分:10)
尝试
index(master21) <- index(master21) + 60 # adds a minute
将为时间索引添加一分钟。然后,您可以使用merge()
作为时间戳对齐。
更一般地说,zoo
包的插图对你也很有用。