我有一个变量,它是一个时间列表
t <- c("00:01:09.25", "00:01:25.24")
我想将它们转换为小数秒,以便它是数字的,我可以在t和另一个变量之间进行关联。如果将t转换为POXITlc对象,我可以对t进行减法或其他操作,但如果我将POXITlc对象与连续变量关联,则会弹出错误:x不是数字向量。
这就是我想将t转换为小数秒的原因:
00:01:09.25 = 01 * 60 * 100 + 09 * 100 + 25 = 6925
答案 0 :(得分:1)
使用函数strsplit基于“:”
进行拆分x<-"00:01:09.25"
y<-as.numeric(unlist(strsplit(x,":")))
y[1]*60*60*100+y[2]*60*100+y[3]*100 #desired output
使用lapply将其应用于字符串向量:
t <- c("00:01:09.25", "00:01:25.24")
unlist(lapply(strsplit(t,":"), function(x) as.numeric(x[1])*60*60*100+
as.numeric(x[2])*60*100+as.numeric(x[3])*100))
答案 1 :(得分:1)
我们可以使用lubridate
library(lubridate)
100*period_to_seconds(hms(t))
#[1] 6925 8524