【R】分:秒(mm:ss)の様な入力を、秒に変換する関数

こんてんつ

10:10の様なmm:ssの入力を、610秒の様な秒に変換する関数を紹介する。

チートシート

関数

to_seconds <- function(input_time) {
  
  time_parts <- strsplit(input_time, ":")[[1]]
  
  minutes <- as.integer(time_parts[1])
  seconds <- as.integer(time_parts[2])
  
  total_seconds <- minutes * 60 + seconds
  
  return(total_seconds)
}

使用例

print(to_seconds("10:10"))

解説

strsplit(time, ":")[[1]][[1]]の意味について解説する。strsplit(time, ":")[[1]]"10:10"の様な入力を、c("10", "10")に変換する。strsplit(time, ":")はリストを返し、[[1]]を付けることで、リストの最初の要素の値を返すことになる。具体的には、

> strsplit("10:10", ":")
[[1]]
[1] "10" "10"

> strsplit("10:10", ":")[[1]]
[1] "10" "10"