Check whether a
lies within the interval b
, inclusive of the endpoints.
Arguments
- a
An interval or date-time object.
- b
Either an interval vector, or a list of intervals.
If
b
is an interval (or interval vector) it is recycled to the same length asa
. Ifb
is a list of intervals,a
is checked if it falls within any of the intervals, i.e.a %within% list(int1, int2)
is equivalent toa %within% int1 | a %within% int2
.
Examples
int <- interval(ymd("2001-01-01"), ymd("2002-01-01"))
int2 <- interval(ymd("2001-06-01"), ymd("2002-01-01"))
ymd("2001-05-03") %within% int # TRUE
#> [1] TRUE
int2 %within% int # TRUE
#> [1] TRUE
ymd("1999-01-01") %within% int # FALSE
#> [1] FALSE
## recycling (carefully note the difference between using a vector of
## intervals and list of intervals for the second argument)
dates <- ymd(c("2014-12-20", "2014-12-30", "2015-01-01", "2015-01-03"))
blackout_vector <- c(
interval(ymd("2014-12-30"), ymd("2014-12-31")),
interval(ymd("2014-12-30"), ymd("2015-01-03"))
)
dates %within% blackout_vector
#> [1] FALSE TRUE FALSE TRUE
## within ANY of the intervals of a list
dates <- ymd(c("2014-12-20", "2014-12-30", "2015-01-01", "2015-01-03"))
lst <- list(
interval(ymd("2014-12-30"), ymd("2014-12-31")),
interval(ymd("2014-12-30"), ymd("2015-01-03"))
)
dates %within% lst
#> [1] FALSE TRUE TRUE TRUE
## interval within a list of intervals
int <- interval(
ymd("2014-12-20", "2014-12-30"),
ymd("2015-01-01", "2015-01-03")
)
int %within% lst
#> [1] FALSE TRUE