【发布时间】:2015-04-23 16:43:55
【问题描述】:
我从一组日志时间戳开始,想要生成一组不重叠的时间段,以便我可以在某些上下文中显示相应的日志条目。
假设我在 R 中有一个日期时间列表:
times <- c("2015-03-10 19:13:35",
"2015-03-10 19:13:37",
"2015-03-10 19:15:20",
"2015-03-10 19:16:40",
"2015-03-10 19:16:45")
我想生成一个跨越这些日期两侧 10 秒的时间段列表,没有重叠。例如:
[1] "2015-03-10 19:13:25" -- "2015-03-10 19:13:47"
[2] "2015-03-10 19:15:10" -- "2015-03-10 19:15:30"
[3] "2015-03-10 19:16:30" -- "2015-03-10 19:16:55"
- [1] 在时间[1] 之前 10 秒开始,在时间[2] 之后 10 秒结束(因为它们彼此相距在 10 秒以内)
- [2]times[3] 的每一边只有 10 秒,因为它与其他时期不重叠
- [3] 在时间 [4] 之前 10 秒开始,在时间 [5] 之后 10 秒结束(它们再次接近)
我已经尝试使用 lubridate,我可以创建时间段(诚然是简单的部分)。如何合并重叠时段?
intervals <- as.interval(new_difftime(second=20), ymd_hms(times) - 10)
【问题讨论】: