R言語のlubridateパッケージに含まれているas.duration()関数について解説します。この関数は、「時間の長さを、閏年や夏時間などのカレンダーの不規則性に影響されない『厳密な秒数ベースの期間(Duration型)』に変換・計算したい」ときに使える関数です。「純粋な物理的時間の長さ」を正確に扱いたいときに重宝します。
lubridateパッケージは、日付と時間データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
as.duration()は、IntervalおよびPeriod、数値クラスのオブジェクトをDurationオブジェクトに変換するための関数です。数値オブジェクトは、数値と同じ秒単位を持つDurationオブジェクトに変換されます。
使い方
as.duration(x, ...)
引数
x
期間に変換するオブジェクトを指定します。
…
他のメソッドに渡される引数です。現在使用されていません。
戻り値
Durationオブジェクトを返します。
使用例
準備
あらかじめ、tidyverseパッケージまたはlubridateパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(lubridate)
Durationに変換する
IntervalオブジェクトをDurationオブジェクトに変換するには次のようにします。
interval(ymd("2000-01-01"), ymd("2010-06-30")) |>
as.duration()
[1] "331171200s (~10.49 years)"