润滑日期时间间隔行为 - 在间隔内查找单个日期
lubridate date-time interval behavior - finding single dates within intervals
运行 一些测试来弄清楚如何使用 interval
的 lubridate
库 class 来解决问题。
有没有一种简单的方法来检查单个 date/time 是否在给定的时间间隔内?到目前为止,我所想到的就是将单个日期转换为一个间隔,在该间隔中,单个日期重复作为开始和结束时间,然后像这样测试它。只是想知道是否有更好的方法:
library(lubridate)
intTest <- mdy_hms("5/20/2017 2:28:57",
tz = "America/New_York") %--% mdy_hms("5/20/2017 2:28:59",
tz = "America/New_York")
int_overlaps(interval(mdy_hms("5/20/2017 2:28:58",
tz = "America/New_York"), mdy_hms("5/20/2017 2:28:58")), intTest)
也尝试使用 %within%
但这也不适用于这种情况(除非我以某种方式使用错误)。尝试了此处给出的测试示例,但它 returns FALSE
即使答案是 TRUE
:
interval(mdy_hms("5/20/2017 2:28:58"), mdy_hms("5/20/2017 2:28:58"))
%within% intTest
我认为只是
mdy_hms("5/20/2017 2:28:58", tz = "America/New_York") %within% intTest
#[1] TRUE
这在 ?"%within%"
帮助页面上进行了讨论,显示 a %within% b
其中
"a: An interval or date-time object"
确保在进行比较时也匹配您的时区。
intTest
#[1] 2017-05-20 02:28:57 EDT--2017-05-20 02:28:59 EDT
myint <- interval(
mdy_hms("5/20/2017 2:28:58", tz="America/New_York"),
mdy_hms("5/20/2017 2:28:58", tz="America/New_York")
)
myint
#[1] 2017-05-20 02:28:58 EDT--2017-05-20 02:28:58 EDT
myint %within% intTest
#[1] TRUE
myintUTC <- interval(
mdy_hms("5/20/2017 2:28:58"),
mdy_hms("5/20/2017 2:28:58")
)
myintUTC
#[1] 2017-05-20 02:28:58 UTC--2017-05-20 02:28:58 UTC
myintUTC %within% intTest
#[1] FALSE
运行 一些测试来弄清楚如何使用 interval
的 lubridate
库 class 来解决问题。
有没有一种简单的方法来检查单个 date/time 是否在给定的时间间隔内?到目前为止,我所想到的就是将单个日期转换为一个间隔,在该间隔中,单个日期重复作为开始和结束时间,然后像这样测试它。只是想知道是否有更好的方法:
library(lubridate)
intTest <- mdy_hms("5/20/2017 2:28:57",
tz = "America/New_York") %--% mdy_hms("5/20/2017 2:28:59",
tz = "America/New_York")
int_overlaps(interval(mdy_hms("5/20/2017 2:28:58",
tz = "America/New_York"), mdy_hms("5/20/2017 2:28:58")), intTest)
也尝试使用 %within%
但这也不适用于这种情况(除非我以某种方式使用错误)。尝试了此处给出的测试示例,但它 returns FALSE
即使答案是 TRUE
:
interval(mdy_hms("5/20/2017 2:28:58"), mdy_hms("5/20/2017 2:28:58"))
%within% intTest
我认为只是
mdy_hms("5/20/2017 2:28:58", tz = "America/New_York") %within% intTest
#[1] TRUE
这在 ?"%within%"
帮助页面上进行了讨论,显示 a %within% b
其中
"a: An interval or date-time object"
确保在进行比较时也匹配您的时区。
intTest
#[1] 2017-05-20 02:28:57 EDT--2017-05-20 02:28:59 EDT
myint <- interval(
mdy_hms("5/20/2017 2:28:58", tz="America/New_York"),
mdy_hms("5/20/2017 2:28:58", tz="America/New_York")
)
myint
#[1] 2017-05-20 02:28:58 EDT--2017-05-20 02:28:58 EDT
myint %within% intTest
#[1] TRUE
myintUTC <- interval(
mdy_hms("5/20/2017 2:28:58"),
mdy_hms("5/20/2017 2:28:58")
)
myintUTC
#[1] 2017-05-20 02:28:58 UTC--2017-05-20 02:28:58 UTC
myintUTC %within% intTest
#[1] FALSE