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

如何在R Studio中按需求转置Dataframe数据?

解决方案

假设你的原始数据结构如下(对应你提供的示例左侧):

TestABC
Test1123
Test2456

目标格式为(对应示例右侧):

CategoryTest1Test2
A14
B25
C36

以下是两种可行的实现方法:

方法1:使用tidyverse工具链

library(tidyverse)

# 第一步:将宽表转成长表
data_long <- data %>% 
  pivot_longer(-Test, names_to = "Category", values_to = "Value")

# 第二步:将长表转成目标宽表
data_target <- data_long %>% 
  pivot_wider(names_from = Test, values_from = Value)

方法2:使用reshape2包

library(reshape2)

# 第一步:转成长格式
data_long <- melt(data, id.vars = "Test", variable.name = "Category", value.name = "Value")

# 第二步:转成目标宽格式
data_target <- dcast(data_long, Category ~ Test, value.var = "Value")

说明

你之前尝试的方法仅完成了一半步骤:

  • melt() 和 pivot_longer() 只是把原始宽表转成长表,缺少后续转宽的步骤
  • t(data) 是单纯的矩阵转置,会破坏数据框的列名对应关系,需要额外处理才能得到目标格式,效率更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:22:43