我有数据值
dput(a)
"1/3/2019 15:59"
我需要将时间四舍五入到下一个小时。我需要这个日期为"1/3/2019 16:00"
吗?
我该怎么做?
答案 0 :(得分:8)
我们可以使用lubridate
dmy_hm
转换为日期时间对象,然后使用ceiling_date
将其转换为下一小时。
library(lubridate)
ceiling_date(dmy_hm("1/3/2019 15:59"), "hour")
#[1] "2019-03-01 16:00:00 UTC"
答案 1 :(得分:1)
使用round.POSIXt
。不使用任何软件包。
x <- as.POSIXct("1/3/2019 15:59", format = "%m/%d/%Y %H:%M")
round(x + 3600/2 - !(as.numeric(x) %% 3600), "hours")
## [1] "2019-01-03 16:00:00 EST"