You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R tidyverse技术问询:如何基于现有年龄组创建新的年龄分组

没问题!用tidyverse工具集里的dplyr和forcats就能轻松搞定这个年龄分组合并的需求,我给你分步拆解说明:

第一步:构造示例数据集

先模拟你提到的数据集场景(实际使用时直接用你的真实数据即可):

library(tidyverse)

# 创建包含原年龄分组的数据框
df <- tibble(
  age_range = c("18-24", "25-39", "25-39", "40-59", "40-59", "60+")
)

方法1:用dplyr::case_when处理字符型分组

如果你的age_range是字符类型,用case_when可以灵活匹配并替换分组:

df <- df %>%
  mutate(new_age_range = case_when(
    # 将25-39和40-59合并为25-59
    age_range %in% c("25-39", "40-59") ~ "25-59",
    # 其他分组保持原内容不变
    TRUE ~ age_range
  ))

方法2:用forcats::fct_collapse处理因子型分组

如果你的age_range是因子类型,用forcats包的fct_collapse会更高效,还能保留因子的分类特性:

# 先将字符列转为因子(如果原本不是因子的话)
df <- df %>%
  mutate(age_range = as.factor(age_range)) %>%
  mutate(new_age_range = fct_collapse(
    age_range,
    # 指定合并后的新分组名,以及需要合并的原分组
    "25-59" = c("25-39", "40-59")
  ))

最终效果

运行上述代码后,你的数据集会新增new_age_range列,结果如下:

# A tibble: 6 × 2
  age_range new_age_range
  <chr>     <chr>        
1 18-24     18-24        
2 25-39     25-59        
3 25-39     25-59        
4 40-59     25-59        
5 40-59     25-59        
6 60+       60+          

如果你的数据集里还有其他年龄分组,只需要在对应函数里调整匹配规则即可,这两种方法都能很好适配批量修改分组的需求。

内容的提问来源于stack exchange,提问作者Gorkem Tunc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:29:08