如果我有一个日期和小时的矢量,例如......
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个向量。
答案 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