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

如何重塑mtcars数据集?实现车名为X轴、cyl为Y轴的表格结构

解决mtcars数据重塑问题

你需要把长格式的三列数据(汽车名称、mpg、气缸数)转换为宽格式,核心是长转宽操作,用R里的工具可以轻松实现:

方法1:使用tidyverse(推荐)

先加载tidyverse包,把mtcars的行名转为正式列,再用pivot_wider重塑:

library(tidyverse)

# 提取所需列并添加汽车名称列
car_data <- mtcars %>%
  rownames_to_column("car_name") %>%
  select(car_name, mpg, cyl)

# 转成宽格式:行=汽车名称,列=气缸数,值=mpg
wide_car_data <- car_data %>%
  pivot_wider(
    names_from = cyl,    # 用cyl的取值作为新列名
    values_from = mpg,   # 用mpg的值填充单元格
    names_prefix = "cyl_" # 给列名加前缀,避免纯数字列名
  )

方法2:使用Base R

如果不想加载额外包,用base R的reshape函数:

# 添加汽车名称列并提取所需数据
car_data_base <- cbind(car_name = rownames(mtcars), mtcars[, c("mpg", "cyl")])

# 重塑为宽格式
wide_car_data_base <- reshape(
  car_data_base,
  idvar = "car_name",  # 分组依据:汽车名称
  timevar = "cyl",     # 转为列的变量:气缸数
  direction = "wide"   # 指定转换方向为宽格式
)

最终生成的数据框里,每一行对应一个汽车名称,列对应不同气缸数(4/6/8),单元格内是对应的mpg值(单辆车只有一个气缸数,所以每行只有一个非NA值)。

内容的提问来源于stack exchange,提问作者Artūrs Katamadze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:17