如何向数据框添加一个布尔列,指示每个假期日期是否属于日期列
How to add a boolean column to the dataframe that indicates whether each holiday date belongs to the dates column
我有一个包含一系列日期的数据框,我想向该数据框添加一列,以便它在向量日期的每个日期都属于该日期序列时指示 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
我有一个包含一系列日期的数据框,我想向该数据框添加一列,以便它在向量日期的每个日期都属于该日期序列时指示 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