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

如何在R中按prestige变量的数值区间生成取值1-6的level新列

R语言prestige变量分箱生成level列解决方案

以下提供两种常用实现方案,假设你的数据集名为df:

方法1:base R原生cut()函数实现(代码最简洁)

# 生成分组因子列
df$level <- cut(df$prestige, 
                breaks = c(-1,10,20,30,40,50,60), 
                labels = 1:6, 
                right = TRUE)
# 若需要level为数值类型,补充转换逻辑即可
df$level <- as.numeric(as.character(df$level))

参数说明:

  • 断点设置配合right=TRUE可以保证10归入第一组、11归入第二组,完全匹配你给出的区间规则
  • labels参数直接对应输出的1-6等级,无需额外映射

方法2:dplyr包case_when()实现(规则可读性更强)

library(dplyr)
df <- df %>%
  mutate(level = case_when(
    prestige >= 0 & prestige <= 10 ~ 1,
    prestige >= 11 & prestige <= 20 ~ 2,
    prestige >= 21 & prestige <= 30 ~ 3,
    prestige >= 31 & prestige <= 40 ~ 4,
    prestige >= 41 & prestige <= 50 ~ 5,
    prestige >= 51 & prestige <= 60 ~ 6
  ))

说明:这种写法完全对应你列出的区间规则,后续调整划分规则时修改对应条件即可。如果prestige存在小于0或大于60的异常值,case_when()会默认返回NA,你可以根据需求补充异常值的赋值逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:09:03