我正在处理一组lubridate时间间隔,并确定一个日期是否在该集合的任何成员内。 我的时间间隔不重叠,但最好有一个通用答案。)
在开始数据分析之前,我不知道这个时间间隔集合中有多少个时间间隔:
library(lubridate)
#Create 4 dates; 2 pairs
start1 <-ymd("2015-01-01")
stop1 <-ymd("2015-01-08")
start2 <-ymd("2015-02-01")
stop2 <-ymd("2015-02-08")
#Make 2 non-overlapping intervals
interval1 <-start1%--%stop1
interval2 <-start2%--%stop2
#two more dates, each within an interval
day1 <-ymd("2015-01-04")
day2 <-ymd("2015-02-04")
#now test the new dates against the intervals.
day1 %within%interval1 #TRUE
day2 %within%interval1 #FALSE
day2 %within%interval2 #TRUE
我可以做到:
day2 %within%c(interval1, interval2) #(FALSE, TRUE)
我相信只要思考一下就可以强制转换成TRUE。
但是我怎么问呢?
#Don't Run:
INTERVALS <-c(interval1, interval2, ... intervalN)
day2 %within% INTERVALS
例如,当Y在工作期间发生X,其中“当Y在工作期间”是时间间隔的矢量。
有什么建议吗?