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

如何用tidyverse的mutate为DataFrame新增薪资分组列?

用tidyverse给薪资数据分组的实现方法

要给DataFrame新增薪资分组列,直接用mutate()配合case_when()就能搞定,这是tidyverse里处理多条件分支的常用组合。

基础实现代码

假设你的数据框叫salary_df,薪资列是数值型的salary,代码如下:

library(tidyverse)

salary_df <- salary_df %>%
  mutate(
    salary_group = case_when(
      salary < 4000 ~ "<$4000",
      salary >= 4000 & salary <= 6000 ~ "$4000至$6000",
      salary > 6000 ~ ">$6000",
      TRUE ~ NA_character_  # 处理缺失值或异常值
    )
  )

关键说明

  • case_when()会按顺序判断条件,第一个符合的条件就会返回对应的分组标签,条件顺序不要随意调换
  • 最后一行TRUE ~ NA_character_是兜底逻辑,如果薪资是缺失值(NA)或者其他不符合上述条件的情况,会返回NA,避免出现无匹配的结果

处理带$符号的薪资列

如果你的薪资列是带$的字符型(比如"$3500"),得先把它转换成数值型再分组:

salary_df <- salary_df %>%
  mutate(
    # 去掉$符号并转成数值
    salary = as.numeric(str_remove(salary, "\\$")),
    salary_group = case_when(
      salary < 4000 ~ "<$4000",
      salary >= 4000 & salary <= 6000 ~ "$4000至$6000",
      salary > 6000 ~ ">$6000",
      TRUE ~ NA_character_
    )
  )

内容的提问来源于stack exchange,提问作者Ai Robot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:17:11