如何获得分钟和秒的时差?

joh*_*zhj 3 time r

我有两列时间信息,在data.frame中使用分钟和秒,没有附加日期信息,现在我想计算这两列之间的差异,并在几秒钟内获得diff_time(end_time-start_time)的新列(diff_time1)或者在原始变量(diff_time2)中表示的分钟和秒数,如何在R中计算?例如:

      start_time  end_time  diff_time1  diff_time2
       12'10"     16'23"      4'13"      253
       1'05"      76'20"      75'15"     4515  
       96'10"     120'22"     24'12"     1452
Run Code Online (Sandbox Code Playgroud)

nei*_*fws 6

假设您的时间存储为字符串,在这种情况下,必须转义表示秒的引号:

times <- data.frame(start_time = c("12'10\"", "1'05\"", "96'10\""),
                    end_time   = c("16'23\"", "76'20\"", "120'22\"")
                   )
Run Code Online (Sandbox Code Playgroud)

然后您可以使用lubridate::ms转换为分钟+秒并进行计算.如果您希望将结果diff_time1作为字符串,则需要进行一些额外的文本转换:

library(lubridate)
library(dplyr)

times %>% 
  mutate(diff_time1 = ms(end_time) - ms(start_time)) %>%
  mutate(diff_time2 = as.numeric(diff_time1)) %>%
  mutate(diff_time1 = gsub("M ", "'", diff_time1)) %>% 
  mutate(diff_time1 = gsub("S", "\"", diff_time1))

  start_time end_time diff_time1 diff_time2
1     12'10"   16'23"      4'13"        253
2      1'05"   76'20"     75'15"       4515
3     96'10"  120'22"     24'12"       1452
Run Code Online (Sandbox Code Playgroud)