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

如何在R中合并列分组值并适配gt表格库?

解决gt库中分组列单元格合并的问题

要实现Column 1的单元格合并(而非将分组标题显示在行上方),你可以使用gt库的tab_merge()函数配合group_by()来完成,具体步骤如下:

1. 构造示例数据

先模拟你原始的表格数据:

library(tidyverse)
library(gt)

# 示例数据
df <- tibble(
  `Column 1` = c("Group A", "Group A", "Group A", "Group B", "Group B"),
  `Column 2` = c("Item 1", "Item 2", "Item 3", "Item 1", "Item 2"),
  `Column 3` = c(10, 20, 30, 40, 50)
)

2. 实现单元格合并的代码

使用group_by()分组后,通过tab_merge()指定要合并的列,同时设置合并后的单元格垂直居中:

df %>%
  gt() %>%
  # 按Column 1分组,为合并做准备
  group_by(`Column 1`) %>%
  # 合并Column 1的重复单元格,设置垂直对齐为居中
  tab_merge(
    columns = `Column 1`,
    rows = everything(),
    valign = "middle"
  ) %>%
  # 可选:添加边框让合并效果更明显
  tab_style(
    style = cell_borders(
      sides = c("top", "bottom"),
      color = "black",
      weight = px(1)
    ),
    locations = cells_body(
      columns = everything(),
      rows = everything()
    )
  )

关键说明

  • 你之前用df %>% group_by(Column 1) %>% gt()的方式,gt默认会将分组作为行标题显示在上方,而非合并单元格;
  • tab_merge()是gt中专门用于合并同一分组内重复单元格的函数,valign = "middle"可以让合并后的单元格内容垂直居中,更符合常规表格的显示效果;
  • 额外添加的tab_style是为了让表格边框更清晰,方便查看合并效果,可根据需求选择是否保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:47:03