r语言 - 如何将布尔列添加到数据帧,该列指示每个假日日期是否属于日期列



>我有一个带有日期序列的数据帧,我想向数据帧添加一列,以便如果向量日期的每个日期都属于该日期序列,则指示 TRUE,否则指示 FALSE。

这是我的方法:

date <- data_frame(ds = seq(as.Date('2019-01-01'), as.Date('2019-12-31'), by = 'day'))
is_holiday <- function(ds) {
dates <- as.Date(ds)
as.Date(c('2017-01-01', '2019-07-20')) %in% dates
}

其中向量c是我要在列数据框中检查的向量。

我想看到类似的东西

ds          is_holiday
2017-01-01    TRUE
2017-01-02    FALSE
...
2019-07-19    FALSE
2019-07-20    TRUE
2019-07-21    FALSE
...

提前谢谢。

这个怎么样:

holidays <- as.Date(c('2017-01-01', '2019-07-20', '2020-01-01'))
date$is_holiday <- FALSE
date$is_holiday[which(date$ds %in% holidays)] <- TRUE

或者作为单行:

date$is_holiday <- ifelse(date$ds %in% holidays, TRUE, FALSE)

根据@Ronak下面的评论,这里有一个更简单的单行:

date$is_holiday <- date$ds %in% holidays

相关内容

最新更新