将专有持续时间格式转换为毫秒 [英] Convert proprietary time duration format to milliseconds

查看:42
本文介绍了将专有持续时间格式转换为毫秒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是持续时间格式的示例:

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
}

这篇关于将专有持续时间格式转换为毫秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆