當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。