R言語で、IntervalおよびDuration、difftime、numericクラスのオブジェクトを、指定された単位を持つPeriodクラスのオブジェクトに変換する方法について解説します。時間に関する処理はtidyverseパッケージに含まれているlubridateパッケージを使うのがとても便利です。ここでは、lubridateパッケージのas.period()の使用方法についてお伝えします。
as.period()の概要
as.period()は、IntervalおよびDuration、difftime、numericクラスのオブジェクトを、指定された単位を持つPeriodクラスのオブジェクトに変換するための関数です。
as.period()の使い方
as.period(x, unit, ...)
as.period()の引数
x
intervalまたはdifftime、numericオブジェクトを指定します。
unit
期間を構築する時間単位を指定する文字列を指定します。
unitは、as.period.numericメソッドとas.period.intervalメソッドでのみ実装されています。as.period.intervalメソッドの場合、as.periodは指定された単位以下の単位に期間を変換します。
…
as.periodに渡す追加の引数を指定します。
as.period()の戻り値
Periodオブジェクトを返します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
IntervalオブジェクトをPeriodオブジェクトに変換するには次のようにします。
interval(ymd("2000-01-01"), ymd("2010-06-30")) |>
as.period()
[1] "10y 5m 29d 0H 0M 0S"