I have a data frame of dates and the day of the week
> head(data)
day weekday
1 2016-01-01 Friday
4 2016-01-04 Monday
5 2016-01-05 Tuesday
library(lubridate)
library(dplyr)
data%>%
mutate(year = year(day),month= month(day)) %>%
group_by(year, month) %>%
mutate(LastDayInMonth = max(day)==day)%>%
arrange(day) %>%
ungroup() %>%
group_by(year, month, weekday) %>%
mutate(LastWeekInMonth = row_number() == n(),
LastFriayInMonth = weekday =="Freitag" & LastWeekInMonth == 1) %>%
ungroup()%>%
select(day, weekday, LastDayInMonth,LastFriayInMonth)
Same excerpt as above (%>% filter(LastDayInMonth | LastFriayInMonth == TRUE):
Source: local data frame [8 x 4]
day weekday LastDayInMonth LastFriayInMonth
(date) (fctr) (lgl) (lgl)
1 2016-01-29 Freitag TRUE TRUE
2 2016-02-26 Freitag FALSE TRUE
3 2016-02-29 Montag TRUE FALSE
4 2016-03-25 Freitag FALSE TRUE
5 2016-03-31 Donnerstag TRUE FALSE
6 2016-04-29 Freitag TRUE TRUE
7 2016-05-06 Freitag FALSE TRUE
8 2016-05-10 Dienstag TRUE FALSE