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