R×lubridate::day 日時オブジェクトの日要素を取得または設定する

R言語で、日時オブジェクトの日要素を取得または設定する方法について解説します。時間に関する処理はtidyverseパッケージに含まれているlubridateパッケージを使うのがとても便利です。ここでは、lubridateパッケージのday()の使用方法についてお伝えします。

day()の概要

day()は、日時オブジェクトの日要素を取得または設定するための関数です。

day()の使い方


day(x)

mday(x)

wday(
  x,
  label = FALSE,
  abbr = TRUE,
  week_start = getOption("lubridate.week.start", 7),
  locale = Sys.getlocale("LC_TIME")
)

qday(x)

yday(x)

day(x) <- value

mday(x) <- value

qday(x) <- value

qday(x) <- value

wday(x, week_start = getOption("lubridate.week.start", 7)) <- value

yday(x) <- value

day()の引数

x

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

label = FALSE

論理値を指定します。
wdayでのみ使用できます。

  • TRUE: 曜日は「Sunday」のように文字列の順序付き要素として表示
  • FALSE: 曜日は数値として表示
abbr = TRUE

論理値を指定します。
wday でのみ使用できます。

  • FALSE: 曜日は「Sunday」のように文字列の順序付き要素として表示
  • TRUE: ラベルの省略形(「Sun」など)が表示

label = FALSE の場合、abbr は無視されます。

week_start = getOption("lubridate.week.start", 7)

ISO規則に従って週の開始日を指定します。
1は月曜日、7は日曜日(デフォルト)を表します。label = FALSEでweek_start = 7の場合、日曜日には1、月曜日には2、といった具合になります。label = TRUEの場合、返される値は週の開始日を第1レベルとする係数です(例:week_start = 7の場合、日曜日)。lubridate.week.startオプションを設定することで、このパラメータをグローバルに制御できます。

locale = Sys.getlocale("LC_TIME")

曜日名に使用するロケールを指定します。
デフォルトは現在のロケールです。

value

(⁠wday<-⁠の場合)現在のロケールまたは英語での曜日を表す数値または文字列を指定します。省略可能です。文字列の場合、week_startの値は無視されます。

準備

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


library(tidyverse)

使用例

日を取得する

日を取得するには次のようにします。


x <- ymd(c("2001-01-01", "2002-02-02", "2003-03-03"))
day(x)

[1] 1 2 3

日を設定する

日を設定するには次のようにします。


day(x) <- c(11, 12, 13)
x

[1] "2001-01-11" "2002-02-12" "2003-03-13"