r-如何将时间转换为标准格式并计算时差


newdf=data.frame(date=as.Date(c("2021-01-04","2021-01-05","2021-01-06","2021-01-07")),
time=c("10:32:29","11:25","12:18:42","09:58"))

这是我的数据帧。我想用小时来计算连续两天之间的时差。你能提出一个计算方法吗?请注意,有些时间值不包含秒。所以,首先我们必须把它转换成标准形式。你能给我一个解决所有这些问题的方法吗。这完全是R编程。

datetime粘贴在一列中,使用parse_date_time以标准格式(Posixct(更改时间值,并使用difftime以小时为单位计算连续时间之间的差异。

library(dplyr)
library(tidyr)
library(lubridate)
newdf %>%
unite(datetime, date, time, sep = ' ') %>%
mutate(datetime = parse_date_time(datetime, c('Ymd HMS', 'Ymd HM')), 
difference_in_hours = round(as.numeric(difftime(datetime,
lag(datetime), 'hours')), 2))
#             datetime difference_in_hours
#1 2021-01-04 10:32:29                  NA
#2 2021-01-05 11:25:00               24.88
#3 2021-01-06 12:18:42               24.90
#4 2021-01-07 09:58:00               21.66

最新更新