您如何在R中将时间舍入到下一小时

时间:2019-04-04 13:26:42

标签: r

我有数据值

dput(a)
"1/3/2019 15:59"

我需要将时间四舍五入到下一个小时。我需要这个日期为"1/3/2019 16:00"吗?

我该怎么做?

2 个答案:

答案 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"