基于Date列表示每周数据中的假日虚拟变量,其中Date表示周末

时间:2018-05-03 08:24:47

标签: r date dummy-variable

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将为Ney_Year dummy设置虚拟值1。

1 个答案:

答案 0 :(得分: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)