我有两列时间信息,在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)
假设您的时间存储为字符串,在这种情况下,必须转义表示秒的引号:
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)
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |