R×lubridate::as.duration オブジェクトをDurationに変換する

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)"

参考文献