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

如何按列名处理R语言DataFrame以转换为指定格式?

常见格式转换方案(以宽表转长表为例)

因为你未明确指定目标DataFrame的格式,这里先针对最常用的宽格式转长格式需求提供解决方案,若你需要其他格式转换,可补充目标结构细节。

方法1:使用Base R的reshape()函数

# 转换为长格式
long_df <- reshape(df, 
                   varying = c("a", "b", "c"), 
                   v.names = "value", 
                   timevar = "variable", 
                   times = c("a", "b", "c"), 
                   direction = "long")
# 重置行名
row.names(long_df) <- NULL

转换后结果:

name variable value
1    A        a     1
2    B        a     2
3    C        a     3
4    A        b     4
5    B        b     5
6    C        b     6
7    A        c     7
8    B        c     8
9    C        c     9

方法2:使用tidyverse的pivot_longer()函数

若习惯tidyverse生态,这个方法更简洁直观:

library(tidyverse)
long_df <- df %>% 
  pivot_longer(cols = -name, 
               names_to = "variable", 
               values_to = "value")

输出结果与上述方法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:15:11