【问题标题】:How to convert time to standard format and calculate time difference如何将时间转换为标准格式并计算时差
【发布时间】:2021-07-08 10:26:00
【问题描述】:
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 编程。

【问题讨论】:

    标签: r date time


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多