R×lubridate::days_in_month 日時オブジェクトから月の日数を取得する

R言語のlubridateパッケージに含まれているdays_in_month()関数について解説します。この関数は、「指定した日付の月が、全部で何日あるか(28、29、30、31日)を自動判定して数値で取得したい」ときに使える関数です。カレンダーの「大小の月」や「うるう年」を自動で計算してくれるため、月ごとの日数の違いが影響する計算(日割り計算や月末判定など)に欠かせない関数です。

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

概要

days_in_month()は、日時オブジェクトから月の日数を取得するための関数です。

使い方


days_in_month(x)

引数

x

日時オブジェクト(POSIXct、POSIXlt、Date、chron、yearmon、yearqtr、zoo、zooreg、timeDate、xts、its、ti、jul、timeSeries、fts)を指定します。

戻り値

日時オブジェクトの月要素の日数を表す整数を返します。

使用例

準備

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


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

月の日数を取得する

日時オブジェクトから月の日数を取得するには次のようにします。文字列として指定した場合は、自動的にas.POSIXlt.character()関数により変換されます。


days_in_month(c("2000-02-01", "2001-02-01", "2002-02-01", "2003-02-01", "2004-02-01"))

Feb Feb Feb Feb Feb 
 29  28  28  28  29 

参考文献