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

在R语言中将长格式数据框转换为带嵌套列头的宽格式

实现嵌套列头的表格转换方法

要生成你需要的嵌套列头格式,仅靠pivot_wider只能得到带复合列名的宽表,想要可视化出多层表头,需要结合表格渲染工具(比如kableExtra)来实现。以下是完整步骤:

1. 加载所需包

library(tidyverse)
library(kableExtra)

2. 数据格式转换

先把原数据中的Data1、Data2转为行维度(即作为表格的行名),再通过pivot_wider将Year和Sex转为列维度:

df_processed <- df %>%
  # 将Data1/Data2转成长格式的行指标
  pivot_longer(cols = starts_with("Data"), names_to = "Metric", values_to = "Value") %>%
  # 按Year和Sex展开为宽表,列名自动生成为Year_Sex格式
  pivot_wider(names_from = c(Year, Sex), values_from = Value)

3. 生成嵌套表头表格

用kableExtra的add_header_above来创建两层表头,对应年份和性别层级:

df_processed %>%
  kbl(col.names = c("", "F", "M", "X", "F", "M", "X", "F", "M", "X")) %>%
  # 第一层表头:年份,每个年份对应3列(F/M/X)
  add_header_above(c(" " = 1, "2018" = 3, "2019" = 3, "2020" = 3)) %>%
  # 调整表格样式,避免过宽
  kable_styling(full_width = FALSE)

运行后会生成你需要的嵌套表头表格:

201820192020
FMX
Data1145
Data21434588

注:你示例中2020年X对应的46应为原数据的456,上述结果保留原始数据值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:07:09