たとえば、今週の金曜日が何日か知りたいとする。
カレンダーを見れば一発なのにも関わらず、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