【发布时间】:2019-10-08 09:47:01
【问题描述】:
对于我的数据框中的每个日期间隔行,我想确定它是否与所有其他日期间隔重叠。排除自身。
具有开始和结束日期的数据框,表示间隔:
`data <- read.table(header=TRUE,text="
start.date end.date
2019-09-01 2019-09-10
2019-09-05 2019-09-07
2019-08-25 2019-09-05
2019-10-10 2019-10-15
")`
此函数lubridate::int_overlaps() 通过返回逻辑 TRUE 或 FALSE 来检查两个日期间隔是否重叠。
`int_overlaps(interval(ymd("2019-09-01"),ymd("2019-09-10")), interval(ymd("2019-09-05"), ymd("2019-09-07")))
[1] TRUE
int_overlaps(interval(ymd("2019-09-01"),ymd("2019-09-10")), interval(ymd("2019-10-10"), ymd("2019-10-15")))
[1] FALSE`
我想使用 int_overlap() 将每个日期间隔与除自身之外的所有其他日期间隔进行迭代,以确定它是否与其他日期重叠。
输出应如下所示:
`data <- read.table(header=TRUE,text="
start.date end.date overlaps
2019-09-01 2019-09-10 TRUE
2019-09-05 2019-09-07 TRUE
2019-08-25 2019-09-05 TRUE
2019-10-10 2019-10-15 FALSE
")
`
【问题讨论】: