R言語で、時分の順に並んでいる文字列または数値をPeriodオブジェクトに変換する方法について解説します。時間に関する処理はtidyverseパッケージに含まれているlubridateパッケージを使うのがとても便利です。ここでは、lubridateパッケージのhm()の使用方法についてお伝えします。
hm()の概要
hm()は、時分の順に並んでいる文字列または数値をPeriodオブジェクトに変換するための関数です。hm()は、「-」を除くすべての非数値文字を区切り文字として認識します(「-」は負のPeriodを表します)。時、分の解析後、残りの入力は無視されます。
hm()の使い方
hm(..., quiet = FALSE, roll = FALSE)
hm()の引数
…
時、分の2つの要素からなる文字ベクトルを指定します。
quiet = FALSE
TRUEの場合、関数は通常のメッセージを表示せずに評価されます。
locale = Sys.getlocale(“LC_TIME”)
真偽値を指定します。
TRUEの場合、小さい単位が従来の制限を超える場合、大きい単位に繰り越されます。例えば、hms(“01:59:120”, roll = TRUE)は、Period”2H 1M 0S”を生成します。
hm()の戻り値
Periodオブジェクトのベクトルを返します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
時分の順に並んでいる文字列をPeriodオブジェクトに変換するには次のようにします。
hm(c("08:15", "12:30"))
[1] "8H 15M 0S" "12H 30M 0S"