【问题标题】:How to calculate time difference in R using an dataframe如何使用数据框计算 R 中的时间差
【发布时间】:2021-11-28 12:30:22
【问题描述】:

有一个大数据框,其中有 2 列 (POSIXct),需要计算行程长度。

日期格式如下:

格式:“2020-10-31 19:39:43”

可以使用difftime函数,对吗?

谢谢

【问题讨论】:

  • 你试过了吗?
  • 只要列是 datetime 类型,您就可以使用 difftime!
  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example

标签: r time


【解决方案1】:

这取决于你想要什么输出格式。
例如,如果你想要两个日期之间的月差,你可以使用库“lubridate”中的“interval”函数

library(lubridate)
interval(as.Date(df$date1),as.Date(df$date2) %/% months(1))

它也适用于年、周、日、小时

【讨论】:

    【解决方案2】:

    鉴于您的数据使用正确的 POSIXct 格式,您只需减去两个日期即可获得差异。不需要额外的功能。

    date1 <- as.POSIXct(strptime("2020-10-31 19:39:43", format = "%Y-%m-%d %H:%M:%OS"))
    date2 <- as.POSIXct(strptime("2020-10-31 19:20:43", format = "%Y-%m-%d %H:%M:%OS"))
    
    date1 - date2
    

    输出:时差 19 分钟

    【讨论】:

    • 谢谢。如果我需要输出格式为 00.00.00
    • POSIX 只能使用 / 或 - 分隔符存储日期数据。但是,如果您将日期视为字符串,则可以在显示之前简单地修改输出(例如使用 gsub())。像这样:print(gsub("-", ".", date2))第一个参数是你的搜索词“-”,而第二个指定应该用“.”替换它,第三个是你的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2020-01-25
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多