首页 > 解决方案 > 如何计算两列之间的时间差?

问题描述

我有一个初学者问题。我有以下数据:

开始时间 结束时间 期间
2021 年 10 月 8 日 17:15 2021 年 10 月 8 日 17:22 不适用
2021 年 10 月 8 日 17:23 2021 年 10 月 8 日 17:39 不适用
21/08/2021 02:34 21/08/2021 02:50 不适用
21/08/2021 06:52 21/08/2021 07:08 不适用
19/08/2021 11:55 19/08/2021 12:04 不适用
19/08/2021 12:41 19/08/2021 12:47 不适用

我想计算时间差并将其添加到持续时间列中。

标签: r

解决方案


我们可以使用difftime

library(lubridate)
library(dplyr)

df %>%
  mutate(across(contains("at"), dmy_hm), # you don't need this if your colums is already in datetime format
         duration=difftime(ended_at, started_at))

输出:

           started_at            ended_at duration
1 2021-08-10 17:15:00 2021-08-10 17:22:00   7 mins
2 2021-08-10 17:23:00 2021-08-10 17:39:00  16 mins
3 2021-08-21 02:34:00 2021-08-21 02:50:00  16 mins
4 2021-08-21 06:52:00 2021-08-21 07:08:00  16 mins
5 2021-08-19 11:55:00 2021-08-19 12:04:00   9 mins
6 2021-08-19 12:41:00 2021-08-19 12:47:00   6 mins

推荐阅读