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