当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R lubridate within-interval 日期(或间隔)是否在某个间隔内?


检查 a 是否位于区间 b 内(包括端点)。

用法

a %within% b

参数

a

间隔或日期时间对象。

b

区间向量或区间列表。

如果 b 是一个区间(或区间向量),它将被回收到与 a 相同的长度。如果 b 是间隔列表,则检查 a 是否属于任何间隔内,即 a %within% list(int1, int2) 相当于 a %within% int1 | a %within% int2

一个逻辑向量。

例子

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
源代码:R/intervals.r

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Does a date (or interval) fall within an interval?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。