R言語のlubridateパッケージに含まれているas.interval()関数について解説します。この関数は、「特定の『開始日時』と『終了日時』のペアを保持したまま、時間の長さを管理・計算したい」ときに使える関数です。lubridateには時間の長さを扱う型がいくつかありますが、as.interval()は「カレンダー上のどの日からどの日までか」というタイムライン上の位置情報(コンテキスト)を失わないのが最大の強みです。
lubridateパッケージは、日付と時間データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
as.interval()は、difftimeおよびDuration、Period、numericクラスのオブジェクトを、指定された日時から始まる間隔に変換するための関数です。数値オブジェクトは、まず、指定された秒数の数値に等しい時間範囲に強制変換されます。
使い方
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