Вы можете сделать это в базе R по существу за одну операцию. Вам также не нужен второй входной столбец.
Вот более медленное прохождение:
Код
dates <- c("2/12/2020","2/11/2020","2/10/2020","2/7/2020","2/6/2020", "2/5/2020")
Dates <- anytime::anydate(dates) ## one of several parsers
dow <- weekdays(Dates) ## for illustration, base R function
cnt <- (as.integer(format(Dates, "%d")) - 1) %/% 7 + 1
res <- data.frame(dt=Dates, dow=dow, cnt=cnt)
res
(Финальный) Вывод
R> res
dt dow cnt
1 2020-02-12 Wednesday 2
2 2020-02-11 Tuesday 2
3 2020-02-10 Monday 2
4 2020-02-07 Friday 1
5 2020-02-06 Thursday 1
6 2020-02-05 Wednesday 1
R>
Такая функциональность часто присутствует в специальных библиотеках даты / времени. Я обернул некоторый код из библиотеки (C ++) Boost date_time в пакет RcppBDH - что позволило легко найти «третью среду в прошлом месяце каждого квартала» и т. Д.