将专有持续时间格式转换为毫秒
Convert proprietary time duration format to milliseconds
这是持续时间格式的示例:
16984 = 16 second 984 milliseconds
214032 = 2 minutes 14 seconds, 032 milliseconds
1649871 = 16 minutes 49 seconds and 871 milliseconds
所以看起来人类可读格式的持续时间格式是minutes:seconds:milliseconds
我写了一个函数来转换它,但我知道它不是万无一失的。我知道字符串的长度最多为 2
convert.to.ms <- function(str) {
str <- as.numeric(str)
ms <- c()
ss <- c()
min <- c()
nchar(str)
total.ms <-c()
if(nchar(str) == 6) {
ms <- as.numeric(substr(str, nchar(str)-2, nchar(str)))
ss <- as.numeric(substr(str, nchar(str)-4, nchar(str)-3))
min <- as.numeric(substr(str, 0, 1))
total.ms <- (sum (ms + ss*1000 + min*60000))
} else if(nchar(str) == 5) {
ms <- as.numeric(substr(str, nchar(str)-2, nchar(str)))
ss <- as.numeric(substr(str, nchar(str)-4, nchar(str)-3))
total.ms <- (sum (ms + ss*1000))
}
total.ms
}
我试过 lubridate
没用
拥抱你输入的数字
prop.time.format.to.milliseconds <- function(ptf) {
ms <- as.numeric(ptf) %% 1000
ss <- floor(as.numeric(ptf)/1000) %% 100
mm <- floor(as.numeric(ptf)/100000)
mm*60000 + ss*1000 + ms
}
使用末尾注释中显示的输入tt
:
60 * 1000 * (tt %/% 100000) + 1000 * (tt %/% 1000 %% 100) + (tt %% 1000)
## [1] 16984 134032 1009871
备注
我们假设输入是:
tt <- c(16984, 214032, 1649871)
这是持续时间格式的示例:
16984 = 16 second 984 milliseconds
214032 = 2 minutes 14 seconds, 032 milliseconds
1649871 = 16 minutes 49 seconds and 871 milliseconds
所以看起来人类可读格式的持续时间格式是minutes:seconds:milliseconds
我写了一个函数来转换它,但我知道它不是万无一失的。我知道字符串的长度最多为 2
convert.to.ms <- function(str) {
str <- as.numeric(str)
ms <- c()
ss <- c()
min <- c()
nchar(str)
total.ms <-c()
if(nchar(str) == 6) {
ms <- as.numeric(substr(str, nchar(str)-2, nchar(str)))
ss <- as.numeric(substr(str, nchar(str)-4, nchar(str)-3))
min <- as.numeric(substr(str, 0, 1))
total.ms <- (sum (ms + ss*1000 + min*60000))
} else if(nchar(str) == 5) {
ms <- as.numeric(substr(str, nchar(str)-2, nchar(str)))
ss <- as.numeric(substr(str, nchar(str)-4, nchar(str)-3))
total.ms <- (sum (ms + ss*1000))
}
total.ms
}
我试过 lubridate
没用
拥抱你输入的数字
prop.time.format.to.milliseconds <- function(ptf) {
ms <- as.numeric(ptf) %% 1000
ss <- floor(as.numeric(ptf)/1000) %% 100
mm <- floor(as.numeric(ptf)/100000)
mm*60000 + ss*1000 + ms
}
使用末尾注释中显示的输入tt
:
60 * 1000 * (tt %/% 100000) + 1000 * (tt %/% 1000 %% 100) + (tt %% 1000)
## [1] 16984 134032 1009871
备注
我们假设输入是:
tt <- c(16984, 214032, 1649871)