R语言基于validation_date日期列创建classifiers分类列的实现问题
R语言按日期范围生成分类列实现方案
你提供的数据框中validation_date已经是Date类型,可直接使用以下两种方案实现分类:
- 方案1:使用
dplyr包的case_when函数(推荐,逻辑可读性更强)
# 加载依赖包,未安装可先执行 install.packages("dplyr") library(dplyr) df <- df %>% mutate(classifiers = case_when( # 早于2021-07-26 validation_date < as.Date("2021-07-26") ~ "classifier_1", # 介于2021-07-26到2021-08-19之间,包含首尾两天 validation_date >= as.Date("2021-07-26") & validation_date <= as.Date("2021-08-19") ~ "classifier_2", # 晚于2021-08-19 TRUE ~ "classifier_3" ))
小提示:上述代码中最后一个条件用TRUE兜底,只要不满足前两个条件就会匹配到第三个分类,避免漏判。如果你要求第二个分类不含首尾日期,去掉对应条件的等号即可。
- 方案2:使用基础R嵌套
ifelse(无需安装额外包)
df$classifiers <- ifelse( df$validation_date < as.Date("2021-07-26"), "classifier_1", ifelse( df$validation_date <= as.Date("2021-08-19"), "classifier_2", "classifier_3" ) )
你可以执行以下代码验证分类结果是否符合预期:
# 查看不同日期对应的分类统计 table(df$validation_date, df$classifiers)
内容的提问来源于stack exchange,提问作者Wilson Souza
相关产品推荐
相关产品推荐

