unionそれ自体が間隔ではない共用体を処理できる for 時間間隔の実装を探しています。
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.
私の最終目標は、複雑な結合を%within%次のように使用することです。
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_intervalsFALSEmy_int <- 2003-01-01 -- 2006-01-01TRUE
ただし、複雑な結合にはこれ以外にも用途があると思います。