I was trying to adapt this tutorial on making calendar plots in ggplot2 but running into something quirky with Week of months. See the code below. Why is 2025-05-01 listed as week 5?
library(tidyverse)
dates_may_2025 <- tibble(
date=seq(mdy("05-01-2025"), mdy("05-31-2025"), by="1 day")
) %>%
mutate(
day = mday(date),
month = month(
date, label = T, abbr = F, locale = 'en_US.UTF-8'
),
wday = wday(date, label = T, locale = 'en_US.UTF-8'),
week_month = stringi::stri_datetime_fields(date, locale = 'en_US.UTF-8')$WeekOfMonth,
week_year = week(date)
)
dates_may_2025 %>% print(n=31)
#> # A tibble: 31 × 6
#> date day month wday week_month week_year
#> <date> <int> <ord> <ord> <int> <dbl>
#> 1 2025-05-01 1 May Thu 5 18
#> 2 2025-05-02 2 May Fri 1 18
#> 3 2025-05-03 3 May Sat 1 18
#> 4 2025-05-04 4 May Sun 1 18
#> 5 2025-05-05 5 May Mon 2 18
#> 6 2025-05-06 6 May Tue 2 18
#> 7 2025-05-07 7 May Wed 2 19
#> 8 2025-05-08 8 May Thu 2 19
#> 9 2025-05-09 9 May Fri 2 19
#> 10 2025-05-10 10 May Sat 2 19
#> 11 2025-05-11 11 May Sun 2 19
#> 12 2025-05-12 12 May Mon 3 19
#> 13 2025-05-13 13 May Tue 3 19
#> 14 2025-05-14 14 May Wed 3 20
#> 15 2025-05-15 15 May Thu 3 20
#> 16 2025-05-16 16 May Fri 3 20
#> 17 2025-05-17 17 May Sat 3 20
#> 18 2025-05-18 18 May Sun 3 20
#> 19 2025-05-19 19 May Mon 4 20
#> 20 2025-05-20 20 May Tue 4 20
#> 21 2025-05-21 21 May Wed 4 21
#> 22 2025-05-22 22 May Thu 4 21
#> 23 2025-05-23 23 May Fri 4 21
#> 24 2025-05-24 24 May Sat 4 21
#> 25 2025-05-25 25 May Sun 4 21
#> 26 2025-05-26 26 May Mon 5 21
#> 27 2025-05-27 27 May Tue 5 21
#> 28 2025-05-28 28 May Wed 5 22
#> 29 2025-05-29 29 May Thu 5 22
#> 30 2025-05-30 30 May Fri 5 22
#> 31 2025-05-31 31 May Sat 5 22
Created on 2025-04-29 with reprex v2.1.1