【发布时间】:2012-06-27 11:43:53
【问题描述】:
我有 100 个文本文件,其中包含在不同时间点开始和结束的时间序列。我想提取系列中常见时间段的值。 使用以下代码生成示例数据:
set.seed(1)
D1 = data.frame(time = seq(ISOdatetime(2012, 6, 26, 3, 15, 00),
length = 500, by = 900),
value = rnorm(500))
D2 = data.frame(time = seq(ISOdatetime(2012, 6, 24, 5, 30, 00),
length = 541, by = 900),
value = rnorm(541))
D3 = data.frame(time = seq(ISOdatetime(2012, 6, 23, 5, 45, 00),
length = 700, by = 900),
value = rnorm(700))
此数据将为您提供 3 个时间序列的开始和结束以及不同的时间。我希望只保留共同时间段的值并删除其余的值。 IE。 如果,
- 第一个系列以“2012-6-26 3:45:26”开头,以“2012-8-07 4:45:26”结尾
- 2nd 以“2012-6-24 5:55:27”结尾,以“2012-7-28 7:45:26”结束
- 3rd 以“2012-6-23 5:04:30”结尾,以“2012-7-27 4:45:26”结束
然后我希望保留三个时间序列的交集数据,即数据对应于:-
- 开始:“2012-6-26 3:45:26”
- 结束:“2012-7-27 4:45:26”
- 适用于所有 3 个系列并删除其余部分。
我搜索了 SO 和其他网站,但没有找到任何解决方案。需要帮助。 我如何做到这一点?
【问题讨论】:
-
您关心的时间精度是多少?您的计算 (15*60) 以 15 分钟为间隔,但您提到的第二个和第三个系列(5:55:27 和 5:04:30)的假设开始时间不是。这可能会使合并变得困难,因为默认情况下合并将通过精确的时间匹配来完成。可能有其他方法而不是合并,但这就是我想到的。看了我的回答和这条评论,你的数据是容易合并的形式还是其他形式?
标签: r time-series zoo