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

R语言中data.frame数据框格式转换方法咨询

你需要执行的是宽格式数据转长格式数据的重塑操作,不同R生态下的实现方法如下:

方法1:使用tidyverse生态pivot_longer函数(易读性最高)

首先加载tidyr包,执行如下代码:

library(tidyr)
# 请将下方df_old替换为你自己的原始数据框名称
df_new <- df_old %>%
  pivot_longer(
    cols = -ID, # 除ID列外所有列都展开,若ID列名不同请同步修改
    names_to = "分类维度", # 可自定义生成的分类列的列名
    values_to = "数值" # 可自定义生成的数值列的列名
  )
方法2:基础R原生reshape函数(无需安装第三方包)
# 请将下方df_old替换为你自己的原始数据框名称
df_new <- reshape(
  df_old,
  direction = "long",
  varying = list(colnames(df_old)[-1]),
  v.names = "数值",
  timevar = "分类维度",
  times = colnames(df_old)[-1],
  idvar = "ID"
)
# 可选操作:重置行名
rownames(df_new) <- NULL
方法3:data.table包melt函数(适配大数据量场景,运算速度更快)
library(data.table)
# 请将下方df_old替换为你自己的原始数据框名称
setDT(df_old)
df_new <- melt(
  df_old,
  id.vars = "ID",
  variable.name = "分类维度",
  value.name = "数值"
)

你可以根据自己的原始数据字段、使用习惯选择对应方法,修改代码中的自定义列名即可适配你的实际需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:09:03