【问题标题】:Find time difference in both hours and minutes in R在R中查找小时和分钟的时差
【发布时间】:2020-11-05 13:44:28
【问题描述】:

是否可以在 R 中以小时和分钟计算日期时间之间的时差?例如在

difftime("2020-09-14 18:01:31   ", "2020-09-14 17:47:38", units = "hours") 

应该以(hh:mm) 之类的格式提供00:14

【问题讨论】:

    标签: r


    【解决方案1】:

    这是在基础 R 中执行此操作的一种方法:

    get_in_hm <- function(time1, time2) {
      format(as.POSIXct(as.numeric(difftime(time1, time2, units = 'secs')), 
             origin = '1970-01-01', tz = 'UTC'), '%H:%M')  
    }
    
    get_in_hm("2020-09-14 18:01:31", "2020-09-14 17:47:38")
    #[1] "00:13"
    

    以秒为单位获取difftime 输出,转换为数字,将其视为自纪元以来的秒数,并从捕获的日期时间返回小时和分钟。


    如果你想四舍五入,你可以使用:

    get_in_hm <- function(time1, time2) {
      format(as.POSIXct(round(as.numeric(difftime(time1,time2,units = 'mins'))) * 60,
              origin = '1970-01-01', tz = 'UTC'), '%H:%M')  
    }
    
    get_in_hm("2020-09-14 18:01:31", "2020-09-14 17:47:38")
    #[1] "00:14"
    

    【讨论】:

      【解决方案2】:

      此解决方案不会完全满足您的需求,但足够简单。

      library(lubridate)
      d <- difftime("2020-09-14 18:01:31   ", "2020-09-14 17:47:38", units = "mins") %>% 
        as_hms()
      
      d
      # 00:13:53
      

      【讨论】:

        猜你喜欢
        • 2021-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多