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

标签 r time

我在 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

最佳答案

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

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

那么你可以使用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

关于r - 如何获得分钟和秒的时差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43579840/

相关文章:

R - 对于 view_html() 我如何将限制更改为超过 100

删除列表中不包含模式的元素

java - 在Java中运行代码x秒?

Python Selenium,逐个字母发送键

r - 使用 NA 将 5 分钟数据汇总为每小时总和

r - colnames(x[1])< -"name"和 colnames(x)[1]< -"name"有什么区别?

r - 如何将变量名称绑定(bind)到 df

Python/在定义的函数中导入模块?

c - 如何在 C 中的 Windows 上获取 GMT 中的 time_t

java - .contains() 的运行时间是多少