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

时间:2017-02-21 21:40:41

标签: r posixct

希望你能提供帮助。有一个包含日期时间的数据框。我想确定时间结果是否在小时后(> 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)

2 个答案:

答案 0 :(得分:2)

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

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

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

即使format返回一个字符串,比较也可以安全地使用数字,因为所有单个数字值都填充为"08"

答案 1 :(得分:1)

lubridate包使这非常容易。有关详细信息,请参阅https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html

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