如何为gt表格添加列标签、优化格式及完成收尾设置
gt表格收尾优化解决方案
优化后完整代码
library(gt) library(tidyverse) group = c("g1", "g2", "g3", "g3") n = c(100, 233, 444, 555) df <- tibble(group, n) %>% mutate(pct = n/sum(n)) df %>% gt(rowname_col = "group") %>% cols_label(rowname = "Group") %>% # 为分组列添加标签 cols_align(align = "center", columns = c(n, pct)) %>% # 合并总计行设置,统一显示"Total"标签 grand_summary_rows( columns = c(n, pct), fns = list(Total = list(n = ~sum(.), pct = ~sum(.))), fmt = list(n = ~fmt_number(., decimals = 0), pct = ~fmt_percent(., decimals = 0)) ) %>% fmt_percent(columns = c(pct), decimals = 1) %>% fmt_number(columns = c(n), decimals = 0) %>% # 为第3-4行(包含分组列)设置浅绿填充色 tab_style( style = cell_fill(color = "lightgreen"), locations = list( cells_body(rows = 3:4, columns = TRUE), cells_row_labels(rows = 3:4) ) )
关键修改说明
- 添加分组列标签:通过
cols_label(rowname = "Group")为rowname_col指定的分组列设置正式列名,解决原表格分组列无标签的问题。 - 整行(含分组列)着色:在
tab_style中同时指定cells_body(数据列)和cells_row_labels(分组列)的第3-4行,确保整行所有列都被填充浅绿色。 - 修正总计行标签:将两次独立的
grand_summary_rows调用合并为一次,通过list(Total = ...)统一设置总计行的标签,避免原代码中因多次调用导致的标签显示异常,确保总计行显示为"Total"。
内容的提问来源于stack exchange,提问作者The Rookie
相关产品推荐
相关产品推荐

