Создать фиктивную переменную выходных в еженедельных данных на основе столбца Дата, где Дата представляет конец недели

У DF есть даты конца недели.

df <- data.frame(Date=seq(as.Date("2014-01-03"), as.Date("2020-12-25"), by="week"))
df$week <- seq(nrow(df))
df <- df[, c("week", "Date")]
head(df)
#>   week       Date
#> 1    1 2014-01-03
#> 2    2 2014-01-10
#> 3    3 2014-01-17
#> 4    4 2014-01-24
#> 5    5 2014-01-31
#> 6    6 2014-02-07
tail(df)
#>     week       Date
#> 360  360 2020-11-20
#> 361  361 2020-11-27
#> 362  362 2020-12-04
#> 363  363 2020-12-11
#> 364  364 2020-12-18
#> 365  365 2020-12-25

Мне нужен новогодний манекен на соответствующую неделю. Например, 2018-01-05 будет иметь фиктивное значение 1 для манекена Ney_Year.

1 ответ

Вы могли бы использовать lag из lubridate::year()отслеживать изменения в году

library(lubridate)
library(dplyr) # for lag()
df$NewYear <- ifelse(is.na(lag(df$Date)) | year(lag(df$Date))!=year(df$Date), 1, 0)
Другие вопросы по тегам