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

基于R语言mtcars数据集拆分cyl变量为多列二值变量

处理mtcars数据集生成cyl对应二值变量的方法

需求:为R内置数据集mtcars的cyl变量(取值为4、6、8)生成三个二值变量cyl_4、cyl_6、cyl_8——当cyl等于对应数字时,该变量为1,否则为0,最终得到包含新变量的数据集。

现有示例数据:

mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

期望输出:

mpg cyl disp  hp drat    wt  qsec vs am gear carb cyl_4 cyl_6 cyl_8
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 0     1      0
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 0     1      0
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 1     0      0
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 0     1      0
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 0     0      1
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 0     1      0

方法1:基础R手动生成

直接通过逻辑判断创建新变量,无需额外包:

# 加载数据集
data(mtcars)

# 生成三个二值变量
mtcars$cyl_4 <- ifelse(mtcars$cyl == 4, 1, 0)
mtcars$cyl_6 <- ifelse(mtcars$cyl == 6, 1, 0)
mtcars$cyl_8 <- ifelse(mtcars$cyl == 8, 1, 0)

# 查看前6行结果
head(mtcars)

方法2:dplyr包批量处理

适合使用tidyverse生态的用户,代码更简洁直观:

library(dplyr)

# 生成新变量并保留原数据
mtcars_new <- mtcars %>%
  mutate(
    cyl_4 = as.integer(cyl == 4),
    cyl_6 = as.integer(cyl == 6),
    cyl_8 = as.integer(cyl == 8)
  )

# 查看结果
head(mtcars_new)

方法3:model.matrix自动生成

如果cyl的类别较多,这种方法可以自动生成所有哑变量,无需手动逐个定义:

# 将cyl转为因子,生成无截距的哑变量矩阵
cyl_dummies <- model.matrix(~ factor(cyl) - 1, data = mtcars)
# 重命名列名以匹配需求
colnames(cyl_dummies) <- paste0("cyl_", c(4, 6, 8))

# 合并哑变量到原数据集
mtcars_new <- cbind(mtcars, cyl_dummies)

# 查看前6行结果
head(mtcars_new)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:55:26