【问题标题】:Find difference between times in R在R中查找时间之间的差异
【发布时间】:2015-12-01 16:05:46
【问题描述】:

帮我找出时间之间的差异。例如:这些是日期和时间

2015-11-24 16:49:14
2014-12-02 16:52:43

需要使用 r 以 HH:MM:SS 格式的结果。

【问题讨论】:

  • 查看difftime(),您可以选择您想要返回信息的单位。它也是base R。
  • 使用lubridate,尝试:as.period(ymd_hms(a)-ymd_hms(b)),a 和 b 你的两个日期。

标签: r time difference


【解决方案1】:

由于您只需要时间之间的差异,因此可以忽略日期,您可以先使用strptime 提取时间

x <- strptime(substr(a, 12, 19), format="%H:%M:%S")
y <- strptime(substr(b, 12, 19), format="%H:%M:%S")

然后使用lubridate包的seconds_to_period函数可以得到时差,然后使用sprintf格式化输出

library(lubridate)
temp <- seconds_to_period(as.numeric(difftime(y, x, units = "secs")))
sprintf('%02d:%02d:%02d', hour(temp), minute(temp), second(temp)) 

# [1] "00:03:29"     

数据

a <- as.POSIXct("2015-11-24 16:49:14") 
b <- as.POSIXct("2014-12-02 16:52:43")

【讨论】:

    【解决方案2】:

    以下代码获取差异

    library(lubridate)
    interval(ymd_hms("2015-11-2416:17:38"),ymd_hms("2015-11-24 14:19:44"))
    span<-interval(as.POSIXct("2015-11-24 16:17:38"),
    as.POSIXct("2015-11-24 14:19:44")) 
    as.period(span)
    

    答案格式

    > -1H -57M -54S
    

    同时显示年、月、日的差异

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 2013-07-12
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多