获得与存储为字符的时间变量的时差

问题描述 投票:3回答:3

我在数据框start_timestop_time中有两个字符变量:

  start_time     stop_time
        <chr>        <chr>   
1     19:5:00     19:11:00 
2    20:33:37     20:34:39
3    20:23:00     20:23:38
4    20:12:00     20:13:00
5    20:00:39     20:00:39

我想用dplyr以分钟为单位来计算start_timestop_time之间的差异。我的问题是两个变量都表示为字符。

预期输出:

    diff_time    
        <dbl>         
1           6     
2         1.2    
3        0.38     
4           1   
5        0.39
r dplyr difftime
3个回答
3
投票
library(dplyr)
library(lubridate)

df1 %>% 
  mutate(duration = seconds_to_period(as.numeric(difftime(
                                            strptime(stop_time, "%H:%M:%S"), 
                                            strptime(start_time, "%H:%M:%S"), 
                             units = "secs"))))

#>   start_time stop_time duration
#> 1    19:5:00  19:11:00    6M 0S
#> 2   20:33:37  20:34:39    1M 2S
#> 3   20:23:00  20:23:38      38S
#> 4   20:12:00  20:13:00    1M 0S
#> 5   20:00:39  20:00:39       0S

1
投票

您可以使用下面的代码段计算时差并将其转换为时间对象:


1
投票

您可以尝试:

© www.soinside.com 2019 - 2024. All rights reserved.