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

How to convert time to standard format and calculate time difference

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