This is a way to do it
library(dplyr)
library(lubridate)
# Sample data in a copy/paste friendly format, use your own data frame instead
sample_df <- data.frame(
stringsAsFactors = FALSE,
date = c("11/01/2022","11/02/2022",
"11/03/2022","11/04/2022","11/05/2022","11/06/2022",
"11/07/2022","11/08/2022","11/09/2022","11/10/2022",
"11/11/2022","11/12/2022","11/13/2022","11/14/2022",
"11/15/2022","11/16/2022","11/17/2022","11/18/2022",
"11/19/2022","11/20/2022","11/21/2022","11/22/2022"),
day_name = c("Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday","Monday","Tuesday",
"Wednesday","Thursday","Friday","Saturday","Sunday",
"Monday","Tuesday","Wednesday","Thursday","Friday",
"Saturday","Sunday","Monday","Tuesday")
)
sample_df %>%
mutate(month = month(mdy(date))) %>%
group_by(month, day_name) %>%
mutate(weekday_occurrence = row_number())
#> # A tibble: 22 × 4
#> # Groups: month, day_name [7]
#> date day_name month weekday_occurrence
#> <chr> <chr> <dbl> <int>
#> 1 11/01/2022 Tuesday 11 1
#> 2 11/02/2022 Wednesday 11 1
#> 3 11/03/2022 Thursday 11 1
#> 4 11/04/2022 Friday 11 1
#> 5 11/05/2022 Saturday 11 1
#> 6 11/06/2022 Sunday 11 1
#> 7 11/07/2022 Monday 11 1
#> 8 11/08/2022 Tuesday 11 2
#> 9 11/09/2022 Wednesday 11 2
#> 10 11/10/2022 Thursday 11 2
#> # … with 12 more rows
Created on 2022-12-21 with reprex v2.0.2
Note: Next time please provide a proper REPRoducible EXample (reprex) illustrating your issue.