首页 > 解决方案 > 将分:秒:毫秒转换为毫秒

问题描述

我有一列时间作为因素存在于以下格式的列中1:38.109(即 1 分钟、38 秒和 109 毫秒)

如何将其转换为 R 中的单个连续变量(即 98109 毫秒)?

谢谢!

标签: rtimelubridate

解决方案


library(lubridate)

test <- data.frame(time_fac = c("1:38.109", "2:01.302", "0:23.12", "0:01"))
test$time_ms = as.numeric(lubridate::ms(as.character(test$time_fac)))*1000

as.character用于在获取时间格式time_fac之前将因子变量 , 转换为字符,将其转换为数字(以秒为单位)并乘以 1000 以获取以毫秒为单位的时间。lubridate::ms

> test
  time_fac time_ms
1 1:38.109   98109
2 2:01.302  121302
3  0:23.12   23120
4     0:01    1000

推荐阅读