我有一个不规则的时间序列(R
中的xts
),我想对其应用一些时间窗口。例如,给定以下时间序列,我想计算在从2009-09-22 00:00:00
开始的每个离散的3小时窗口中有多少个观测值:
library(lubridate)
s <- xts(c("OK", "Fail", "Service", "OK", "Service", "OK"),
ymd_hms(c("2009-09-22 07:43:30", "2009-10-01 03:50:30",
"2009-10-01 08:45:00", "2009-10-01 09:48:15",
"2009-11-11 10:30:30", "2009-11-11 11:12:45")))
显然我不能使用period.apply()
或split()
来处理,因为它们会省略没有观测到的周期,而我也无法给它一个起始时间。
对于简单计数问题的期望输出(当然,我的实际任务每个细分都更加复杂!),如果我每次聚合3天,则会得到类似以下的结果:
2009-09-22 1
2009-09-25 0
2009-09-28 0
2009-10-01 3
2009-10-04 0
2009-10-07 0
2009-10-10 0
2009-10-13 0
2009-10-16 0
2009-10-19 0
2009-10-22 0
2009-10-25 0
2009-10-28 0
2009-10-31 0
2009-11-03 0
2009-11-06 0
2009-11-09 2
感谢任何指导。
merge()
这个想法是我需要的 - 创建一个具有所需间隔端点的序列,然后将其合并到序列中? - Ken Williams