如何在R中按条件转换年月值并生成新变量month_id
生成
month_id的最简实现方法 针对给定的数据和转换规则,这里提供两种简洁高效的实现方式:
方法一:基础R原生写法
利用ifelse向量化条件判断,直接生成目标字符串:
pr$month_id <- ifelse(pr$year == 2022, "202301", "202212")
执行后直接查看结果:
pr
输出完全匹配示例要求,这种写法无需额外依赖包,代码最短。
方法二:tidyverse风格写法
如果习惯使用dplyr的管道语法,用case_when明确分支逻辑:
library(dplyr) pr <- pr %>% mutate(month_id = case_when( year == 2022 ~ "202301", year < 2022 ~ "202212" ))
这种写法逻辑更直观,后续若规则有扩展,修改起来更方便。
核心思路
因为需求仅包含两种明确的分支情况,直接赋值固定字符串是最高效的方式,无需进行复杂的日期格式转换操作,避免了额外的计算开销。
内容的提问来源于stack exchange,提问作者psysky
相关产品推荐
相关产品推荐

