r语言 - 分割时间表示字符串并以秒为单位提取值



我正在尝试编写一个函数,该函数将花费时间在字符串中,如"mm:ss.sss"(例如1:23.242)并返回总秒数(在本例中为83.242)。

这是我的尝试:

get_time <- function(str){
minutes = strsplit(str,split=":")[0]
seconds = strsplit(str,split=":")[1]
return((60.0)*as.numeric(minutes)+as.numeric(seconds))
}

我认为strsplit函数有一些问题。我知道它返回一个列表,但是通过[]访问元素似乎不起作用,尽管他们在教程中这么说。

我做错了什么?

lubridate包中有很多函数可以为您完成这些工作。下面是一些使用ms函数的示例代码,该函数读取分钟和秒。

library(lubridate)
timestring <- '1:23.242'
ms <- ms(timestring)
seconds <- as.numeric(as.duration(ms))
seconds
# [1] 83.242

还有另一种方法:

> as.numeric(unlist(str_split('1:23.56', ":"))) %*% c(60,1)
[,1]
[1,] 83.56

相关内容