r语言 - 将小时和分钟转换为分钟



我有一个以小时、分钟和秒为单位的事件时间向量。现在我想把这些时间都换算成分钟。例如,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')

我猜我们可以把小时和分钟加起来。然而,我不确定如何做到这一点。

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

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

in base 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

可以使用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")

相关内容

  • 没有找到相关文章

最新更新