检索时间格式以转换为 R 中的秒数

Retrieve time format to convert to seconds in R

我有两个不同的数据集。一种使用时间格式 m:s,另一种使用 h:m:s。我有一个解决方法来找出我正在使用的数据集,但是我想知道是否有一种直接的方法来检索时间格式然后将其转换为秒?

我正在使用 lubridate 如下:

library(tidyverse)
library(lubridate)

a <- c("00:01","00:03","00:05")
b <- c("00:00:01","00:00:03","00:00:05")

a %>% 
  ms() %>% 
  period_to_seconds()

b %>% 
  hms() %>% 
  period_to_seconds()

我的期望是我可以以某种方式检索格式,然后基于该格式应用 lubridate::ms()lubridate::hms()

有什么想法吗?

假设输入向量只有一种格式,创建一个条件来检查字符数是否为'5',然后paste'00:'在beginnng然后仅应用hms 转换为时间格式

f1 <- function(vec) {
      if(all(nchar(vec)==5)) { 
        vec <- paste0("00:", vec)
       }
        vec %>%
           hms() %>%
           period_to_seconds()

}

f1(a)
#[1] 1 3 5
f1(b)
#[1] 1 3 5