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

R语言gt包表格:如何居中stubhead区域的标签?

解决gt包中Stubhead标签居中的问题

在gt包中,cols_align()和opt_align_table_header()仅作用于数据列或表头区域,无法直接控制stubhead(行标题列的表头)的对齐方式,再加上你使用的gt_theme_espn()主题默认给stubhead设置了左对齐样式,导致常规方法失效。

你可以通过tab_style()函数直接针对stubhead单元格设置对齐样式,以下是修改后的完整代码:

df=data.frame(indicador= c("MAP","MAC","MB", "REP","APU"),
              actual= c(100,100,100,200,200),
              anual=c(1,2,3,4,5),
              rep=c(0.78,0.21,0.54,0.33,0.7), 
              var=c(1.2,1.2,1.5,1.3,1.1))


df %>% mutate(NewRowNames=c("MONTO APUESTA","MONTO ACIERTO",
                            "MARGEN BRUTO","REPAGO","APUESTAS")) %>%
  column_to_rownames(var="NewRowNames") %>% select(-indicador) %>% 
  select(-rep) %>%
  gt(rownames_to_stub = T) %>% 
  tab_stubhead(label="INDICADOR") %>% 
  tab_header(title = md("**KPI´s REPORTE SEMANAL**")) %>% 
  fmt_currency(rows = c(1,2,3),
               columns= c(2,3),
               dec_mark = ",",
               sep_mark = ".",
               decimals = 0) %>% 
  fmt_percent(columns = c("var"),
              scale_values = T) %>% 
  fmt_number(rows = 5,
             columns= c(2,3),
             sep_mark = ".",
             dec_mark = ",",
             decimals = 0) %>% 
  fmt_percent(columns = c(2,3),
              rows=4,
              scale_values = T) %>% 
  cols_align(align = "center",
             columns = everything()) %>%
  gt_theme_espn() %>% 
  # 添加这部分代码设置stubhead居中,放在主题之后以覆盖默认样式
  tab_style(
    style = cell_text(align = "center"),
    locations = cell_stubhead()
  ) %>%
  opt_align_table_header(align="center")

关键说明

  • cell_stubhead()用于精准选中stubhead所在的单元格
  • cell_text(align = "center")设置该单元格内文本居中对齐
  • 将tab_style()放在主题应用之后,确保自定义样式能覆盖主题默认的左对齐设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:10:22