确定 24 小时日期时间是否在间隔内

Determine if 24 hour datetime is within interval

希望能帮到你。有一个包含日期时间的数据框。我想确定时间结果是否发生在下班后 (> 16:00)。 是否有捷径可寻?计划将时间转换为秒,然后这样做,但假设有一种更简单的方法可以通过 R 来做到这一点。

datetimes <- c("2013-04-01 08:19:00", "2013-04-02 16:19:00", "2017-02-17 14:01:00", "2017-02-17 22:01:00")

as.POSIXct(datetimes)

lubridate 包让这一切变得非常简单。有关详细信息,请参阅 https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html

library(lubridate)
hour(as.POSIXct(datetimes))>16

只需使用 format 并通过 >= 进行比较:

format(datetimes,"%H") >= 16
#[1] FALSE  TRUE FALSE  TRUE

假设您已经通过 as.POSIXct() 进行了转换,如您的问题所示。

即使 format returns 是一个字符串,使用数字进行比较是安全的,因为所有单个数字值都像 "08"

一样被填充