R×lubridate::ms 分秒の順に並んでいる文字列または数値をPeriodオブジェクトに変換する

R言語で、分秒の順に並んでいる文字列または数値をPeriodオブジェクトに変換する方法について解説します。時間に関する処理はtidyverseパッケージに含まれているlubridateパッケージを使うのがとても便利です。ここでは、lubridateパッケージのms()の使用方法についてお伝えします。

ms()の概要

ms()は、分秒の順に並んでいる文字列または数値をPeriodオブジェクトに変換するための関数です。hms()は、「-」を除くすべての非数値文字を区切り文字として認識します(「-」は負のPeriodを表します)。分、秒の解析後、残りの入力は無視されます。

ms()の使い方


ms(..., quiet = FALSE, roll = FALSE)

ms()の引数

分、秒の2つの要素からなる文字ベクトルを指定します。

quiet = FALSE

TRUEの場合、関数は通常のメッセージを表示せずに評価されます。

locale = Sys.getlocale(“LC_TIME”)

真偽値を指定します。
TRUEの場合、小さい単位が従来の制限を超える場合、大きい単位に繰り越されます。例えば、hms(“01:59:120”, roll = TRUE)は、Period”2H 1M 0S”を生成します。

ms()の戻り値

Periodオブジェクトのベクトルを返します。

準備

あらかじめ、tidyverseパッケージを読み込んでおきます。


library(tidyverse)

使用例

分秒の順に並んでいる文字列をPeriodオブジェクトに変換するには次のようにします。


ms(c("15:30", "30:20"))

[1] "15M 30S" "30M 20S"