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

如何在R数据框中按类别替换列中的数值?

解决方法:将数值变量替换为类别标签

原始数据准备

先给原始数据框命名列,方便后续操作:

data <- matrix(c(12, 6, 13, 15, 2, 7, 7, 14), nrow = 4)
data <- as.data.frame(data)
colnames(data) <- c("变量1", "变量2")

原始数据如下:

变量1变量2
122
67
137
1514

方法1:基础R ifelse() 函数

适合简单二元判断的直接实现:

# 生成类别列
data$`变量2(类别)` <- ifelse(data$`变量2` < 10, "类别1", "类别2")
# 移除原数值列(按需选择)
data <- data[, -2]

方法2:dplyr 包的 case_when()

扩展性更强,适合后续添加多分类条件的场景:

# 首次使用需安装包
install.packages("dplyr")
library(dplyr)

data <- data %>%
  mutate(`变量2(类别)` = case_when(
    `变量2` < 10 ~ "类别1",
    `变量2` >= 10 ~ "类别2"
  )) %>%
  select(-`变量2`) # 移除原数值列

方法3:cut() 函数分箱

针对连续变量区间分箱的场景,自动生成对应类别:

data$`变量2(类别)` <- cut(
  data$`变量2`, 
  breaks = c(-Inf, 9, Inf), # 断点设为9,对应<10和>=10的区间
  labels = c("类别1", "类别2")
)
data <- data[, -2]

最终结果

无论采用哪种方法,最终都会得到如下数据框:

变量1变量2(类别)
12类别1
6类别1
13类别1
15类别2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:25:16