나는 그 자체로 간격이 아닌 공용체를 처리 할 수있는 시간 간격으로 union
의 구현을 찾고 있습니다.연속하지 않아도되는 시간 간격의 조합
시간 간격에 대해 lubridate
에 union
함수가 포함되어 있지만 공용체가 간격이 아니어도 단일 간격을 반환합니다 (즉, 시작일과 최대 양쪽 끝의 최대 값으로 정의 된 간격을 반환합니다). 날짜, 어느 구간에 포함되지 개입 기간) 무시 :
library(lubridate)
int1 <- new_interval(ymd("2001-01-01"), ymd("2002-01-01"))
int2 <- new_interval(ymd("2003-06-01"), ymd("2004-01-01"))
union(int1, int2)
# Union includes intervening time between intervals.
# [1] 2001-01-01 UTC--2004-01-01 UTC
나는 또한 interval
패키지를 살펴 보았다 그러나 그 문서는 union
에 대한 참조를하지 않습니다를.
my_int %within% Reduce(union, list_of_intervals)
을 우리가 구체적인 예를 고려한다면 그래서,이 list_of_intervals
입니다 가정 :
[[1]] 2000-01-01 -- 2001-01-02
[[2]] 2001-01-01 -- 2004-01-02
[[3]] 2005-01-01 -- 2006-01-02
그런 다음 my_int <- 2001-01-01 -- 2004-01-01
가 %within%
list_of_intervals
하지
내 최종 목표는 %within%
와 복잡한 조합을 사용하는 것입니다 따라서 FALSE
및 my_int <- 2003-01-01 -- 2006-01-01
을 반환해야합니다. 따라서 TRUE
이어야합니다.
그러나 복잡한 공용체에는 이보다 많은 용도가 있다고 생각됩니다.
제공 한 예를 사용하여 원하는 결과물을 찾으십시오. – JackeJR
@RJ 예상 결과와 함께 구체적인 예를 추가했습니다. – orizon
@orizon 나는 당신의 예제와 다소 혼동을 느낀다 : 왜 첫 번째'my_int'에 대해'TRUE'를 얻어야하지만 두 번째 것에 대해서는'TRUE'를 가져야 하는가? 첫 번째 것은 귀하의 목록의 간격 중 하나에 포함되어 있지 않습니까? – juba