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

如何在Rstudio中将0-100原始评分重新分组映射为1-5分档位

R语言实现0-100分映射为1-5分的操作方法

以下两种方法都可以实现你的需求,你可以根据自己的使用习惯选择:

方法1:基础R实现(无需安装额外包)

使用R自带的cut()函数完成分段映射,步骤如下:

  • 提前确认你的原始数据已经导入RStudio,假设数据框名为df,存储原始得分的列名为raw_score
  • 定义分段断点和对应得分标签,注意cut()函数默认左开右闭,所以将最小断点设为-1是为了包含0分这个边界值,避免0分被识别为缺失值
  • 运行代码生成新的1-5分列
# 定义分段断点和对应标签
break_points <- c(-1, 20, 40, 60, 80, 100)
score_labels <- c(1, 2, 3, 4, 5)
# 生成新的分位列,转换为数值型方便后续统计分析
df$new_score <- as.numeric(as.character(cut(df$raw_score, breaks = break_points, labels = score_labels)))

方法2:tidyverse实现(代码逻辑更直观,适合新手)

如果你后续还要做大量数据处理,更推荐使用dplyr包的case_when()函数,规则写起来一目了然,不容易出错:

  • 如果你还没安装tidyverse包,先运行install.packages("tidyverse")完成安装
  • 加载包后运行映射代码
# 加载dplyr包
library(dplyr)
# 生成新的1-5分列
df <- df %>%
  mutate(new_score = case_when(
    raw_score >= 0 & raw_score <= 20 ~ 1,
    raw_score >= 21 & raw_score <= 40 ~ 2,
    raw_score >= 41 & raw_score <= 60 ~ 3,
    raw_score >= 61 & raw_score <= 80 ~ 4,
    raw_score >= 81 & raw_score <= 100 ~ 5
  ))

结果验证方法

运行以下代码可以检查映射是否正确,避免边界值出错:

# 随机抽查10行数据的原始分和新分对应关系
sample_n(df, 10) %>% select(raw_score, new_score)

# 测试所有边界值的转换结果
test_df <- data.frame(raw_score = c(0,20,21,40,41,60,61,80,81,100))
test_df %>%
  mutate(new_score = case_when(
    raw_score >= 0 & raw_score <= 20 ~ 1,
    raw_score >= 21 & raw_score <= 40 ~ 2,
    raw_score >= 41 & raw_score <= 60 ~ 3,
    raw_score >= 61 & raw_score <= 80 ~ 4,
    raw_score >= 81 & raw_score <= 100 ~ 5
  ))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:45:04