在R中查找前一小时和下一小时

时间:2015-04-26 12:15:29

标签: r datetime statistics

假设我通过了"2015-01-01 01:50:50",那么它应该返回"2015-01-01 01:00:00""2015-01-01 02:00:00"。如何在R?

中计算这些值

2 个答案:

答案 0 :(得分:6)

假设您的时间是变量“X”,您可以使用roundtrunc

尝试:

round(X, "hour")
trunc(X, "hour")

这仍然需要一些工作来确定这些值是否实际上已向上或向下舍入(对于round)。所以,如果您不想考虑这一点,可以考虑使用“lubridate”包:

X <- structure(c(1430050590.96162, 1430052390.96162), class = c("POSIXct", "POSIXt"))
X
# [1] "2015-04-26 17:46:30 IST" "2015-04-26 18:16:30 IST"

library(lubridate)
ceiling_date(X, "hour")
# [1] "2015-04-26 18:00:00 IST" "2015-04-26 19:00:00 IST"
floor_date(X, "hour")
# [1] "2015-04-26 17:00:00 IST" "2015-04-26 18:00:00 IST"

答案 1 :(得分:5)

我会使用基本R来使用以下包装器(您可以使用tz函数中的strptime参数指定您的时区)

Myfunc <- function(x){x <- strptime(x, format = "%F %H") ; c(x, x + 3600L)} 
Myfunc("2015-01-01 01:50:50")
## [1] "2015-01-01 01:00:00 IST" "2015-01-01 02:00:00 IST"