将小时和分钟转换为分钟

3
我有一个事件时间向量,其形式为小时、分钟和秒。现在我希望将所有这些时间转换为分钟。例如,01:02:18 将变成 62 分钟。
我的数据:
times
"01:02:18" "01:47:37" "01:18:48" "01:32:54" "01:09:41" "01:50:30"

我尝试过的代码,但它没有起作用:

time = format(strptime(matchtime,"%H:%M:%S"),'%M')

猜测可以通过添加小时和分钟来完成某些操作。但是,我也不确定如何实现。


我假设你真正想表达的是“分钟”,而不是“小步舞曲”(Minuet)... - Ben Bolker
3个回答

3

如果我们想要提取分钟和小时

library(lubridate)
v1 <- hms(times)
v1@hour * 60 + v1@minute
[1]  62 107  78  92  69 110

或者也包括秒数

period_to_seconds(hms(times))/60
[1]  62.30000 107.61667  78.80000  92.90000  69.68333 110.50000

3

在基础 R 中:

difftime(strptime(matchtime,"%T"), strptime('0:0:0','%T'), units = 'min')
Time differences in mins
[1]  62.30000 107.61667  78.80000  92.90000  69.68333 110.50000

同为:

as.numeric(strptime(matchtime,"%T") - strptime('0:0:0', "%T"),'mins')
[1]  62.30000 107.61667  78.80000  92.90000  69.68333 110.50000

编辑

使用data.table:

as.numeric(data.table::as.ITime(matchtime))/60
[1]  62.30000 107.61667  78.80000  92.90000  69.68333 110.50000

2
您可以使用 as.difftime 函数,并将单位设置为 mins
as.difftime(times, units = "mins")
#Time differences in mins
#[1]  62.30000 107.61667  78.80000  92.90000  69.68333 110.50000

如果要忽略秒数,请使用floor

floor(as.difftime(times, units = "mins"))
#Time differences in mins
#[1]  62 107  78  92  69 110

数据

times <- c("01:02:18", "01:47:37", "01:18:48", "01:32:54", "01:09:41", "01:50:30")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接