我有一系列的持续时间,如“118:34:42”,其中118是小时,34是分钟,42是秒的格式,范围长达118小时。输出应该是几秒钟。工作持续时间超过24小时在R
我想将它转换为R中的某种时间类型,但我查看过的大多数库都想添加日期(lubridate,zoo,xts),或返回“NA”,这是由于小时超过了24小时的范围。我可以解析字符串并返回几秒钟,但我想知道是否有更快的方法。
我稍微有点新R(可能与此合作3个月)。
任何帮助搞清楚如何处理这将不胜感激。
实施例:
library(lubridate)
x <- c("118:34:42", "114:12:12")
tt <- hms(x)
Error in parse_date_time(hms, orders, truncated = truncated, quiet = TRUE) :
No formats could be infered from the training set.
#try another route
w <- "118:34:42"
tt2 <- hms(w)
tt2
#[1] NA
z <- "7:02:02"
tt3 <- hmw(z)
tt3
#[1] "7H 2M 2S"
您可以将时间转换为秒:'library(gsubfn); secs < - c(strapply(x,“\\ d +”,as.numeric)%*%c(3600,60,1))'然后在几秒钟内完成所有处理。要转换回来:'sprintf(“%d:%02d:%02d”,secs%/%3600,secs%/%60 %% 60,secs %% 60) –