メモ:「今週の~曜日」みたいな指定をするときはlubridate::floor_date()が便利

たとえば、今週の金曜日が何日か知りたいとする。

カレンダーを見れば一発なのにも関わらず、Rを使ってプログラマティックに知りたい。

そんな謎の思い込みに駆られてしまったときはlubridate::floor_date()です。

library(lubridate)

(d <- today())
#> [1] "2015-04-14"

floor_date()にはunitが指定できて、これを"week"にすると、直近の日曜日が返ってきます。

floor_date(d, unit = "week")
#> [1] "2015-04-12"

wday(floor_date(d, unit = "week"), label = TRUE)
#> [1] Sun
#> Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat

なので、5を足せばOK。

floor_date(d, unit = "week") + 5
#> [1] "2015-04-17"

wday(floor_date(d, unit = "week") + 5, label = TRUE)
#> [1] Fri
#> Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat