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

如何在R中将多行dataframe转换为列名拼接的单行宽格式数据

R语言实现长表转指定格式宽表的方案

1 tidyverse 实现(推荐,代码简洁易读)

依赖tidyverse包中的pivot_wider函数,直接通过参数自定义列名规则:

# 加载包
library(tidyverse)

# 示例数据构造
whatever <- data.frame(model=c("Nug", "Ste"), A=c(1,2), B=c(3,4), C=c(5,6))

# 转换操作
target_df <- whatever %>%
  pivot_wider(
    names_from = model,
    values_from = c(A, B, C),
    names_glue = "{model}.{.value}"
  )

执行后target_df即为1行6列的目标数据框,列名、取值完全符合要求。

2 原生base R实现(无需安装第三方包)

使用R自带的reshape函数实现,调整列名即可:

# 示例数据构造
whatever <- data.frame(model=c("Nug", "Ste"), A=c(1,2), B=c(3,4), C=c(5,6))

# 宽表转换
target_df <- reshape(whatever, idvar = NULL, timevar = "model", direction = "wide", sep = ".")
# 修正列名顺序为「model值.原数值列名」
names(target_df) <- sub("(.*)\\.(.*)", "\\2.\\1", names(target_df))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:54:06