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

R言語のlubridateパッケージに含まれているas.interval()関数について解説します。この関数は、「特定の『開始日時』と『終了日時』のペアを保持したまま、時間の長さを管理・計算したい」ときに使える関数です。lubridateには時間の長さを扱う型がいくつかありますが、as.interval()は「カレンダー上のどの日からどの日までか」というタイムライン上の位置情報(コンテキスト)を失わないのが最大の強みです。

lubridateパッケージは、日付と時間データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

as.interval()は、difftimeおよびDurationPeriodnumericクラスのオブジェクトを、指​​定された日時から始まる間隔に変換するための関数です。数値オブジェクトは、まず、指定された秒数の数値に等しい時間範囲に強制変換されます。

使い方


as.interval(x, start, ...)

引数

x

間隔の長さを表すdurationまたはdifftime、period、numericオブジェクトを指定します。

start

間隔の開始時刻を表すPOSIXtまたはDateオブジェクトを指定します。

as.intervalに渡す追加の引数を指定します。

戻り値

Intervalオブジェクトを返します。

使用例

準備

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


# library(tidyverse)でもよい
library(lubridate)

Intervalに変換する

指定した年月日から1か月後までのIntervalオブジェクトを取得するには次のようにします。


as.interval(period(months = 1), start = ymd("2010-06-15"))

[1] 2010-06-15 UTC--2010-07-15 UTC

参考文献