R:计算时间间隔

时间:2017-01-21 05:50:48

标签: r

如果我有一个日期和小时的矢量,例如......

c("2016-03-15 13","2016-03-16 23","2016-03-17 06","2016-03-18 15","2016-03-19 08","2016-03-20 21")

我可以找到每个时间戳之间经过的小时数吗?我调查了difftime但它需要2个向量。

2 个答案:

答案 0 :(得分:5)

我们可以在转换为' DateTime'之后执行此操作。使用lubridate的课程,然后在'小时'删除difftime

中的最后一个和第一个观察后,通过传递两个vector,使用vector在相邻元素之间
library(lubridate)
v2 <- ymd_h(v1)

base R选项为as.POSIXct

v2 <- as.POSIXct(v1, format = "%Y-%m-%d %H")

然后执行difftime

difftime(v2[-length(v2)], v2[-1], unit = "hour")

数据

v1 <- c("2016-03-15 13","2016-03-16 23","2016-03-17 06",
             "2016-03-18 15","2016-03-19 08","2016-03-20 21")

答案 1 :(得分:2)

您可以使用strptime()功能执行此操作。

尝试这样的事情。

data <- c("2016-03-15 13","2016-03-16 23","2016-03-17 06","2016-03-18 15","2016-03-19 08","2016-03-20 21")
datevec <- strptime(data,"%Y-%m-%d %H")
difftime(datevec[-length(datevec)],datevec[-1],units="hours")

这是输出。

> difftime(datevec[-length(datevec)],datevec[-1],units="hours")
Time differences in hours
[1] -34  -7 -33 -17 -37