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

如何在gtsummary中添加无独立行的底部脚注?求新手友好替代R包

解决方案:gtsummary实现底部脚注+替代包推荐

在gtsummary中实现底部脚注

你目前用modify_table_styling()添加的是行内脚注,会占用独立行。要把脚注移到表格最底部,可按以下步骤修改代码:

  1. 给目标行的标签添加标记(比如*),在tbl_summary()的label参数里调整:
    label = list(AVG_PROF ~ "Overall", AoA ~ "AOA*")
    
  2. 移除原来的modify_table_styling()脚注代码,改用add_footnote()添加底部脚注:
    add_footnote(footnote = "* Age of Acquisition of English", location = "bottom")
    

修改后的完整代码示例:

tbl <- 
  c("{mean}","{sd}","{min}","{max}") %>%
  map(
    ~l2 %>% 
      select(AoA, Reading, Writing, Speaking, Listening, AVG_PROF ) %>% 
      tbl_summary(type = c(Reading = "continuous", Writing = "continuous", Speaking = "continuous", Listening = "continuous"),
                  statistic = all_continuous() ~ .x, 
                  label = list(AVG_PROF ~ "Overall", AoA ~ "AOA*"),  
                  missing = "no"
      ) 
  ) %>%
  tbl_merge() %>%
  modify_caption("<div style='text-align: left'>Table 1. Linguistic Background of the L2 participants<br><br></div>") %>%
  modify_spanning_header(everything() ~ NA) %>%
  modify_footnote(everything() ~ NA) %>%
  modify_header(list(stat_0_1 ~ "**Mean**", stat_0_2 ~ "**SD**", stat_0_3 ~ "**Min**", stat_0_4 ~ "**Max**")) %>%
  add_footnote(footnote = "* Age of Acquisition of English", location = "bottom")

这样脚注就会显示在表格最底部,而非行下方的独立行。

新手友好的替代R包推荐

如果你觉得gtsummary的格式调整受限,推荐kableExtra:

  • 语法直观,和knitr的kable()深度结合,新手易上手
  • 支持高度自定义表格样式,包括底部脚注、列宽、边框等
  • 文档丰富,中文教程资源多

示例代码(实现类似的描述统计表+底部脚注):

library(knitr)
library(kableExtra)
library(dplyr)
library(tidyr)

# 计算各变量的统计量
summary_stats <- l2 %>%
  select(AoA, Reading, Writing, Speaking, Listening, AVG_PROF) %>%
  summarise(
    across(everything(), list(
      Mean = ~mean(.x, na.rm = TRUE),
      SD = ~sd(.x, na.rm = TRUE),
      Min = ~min(.x, na.rm = TRUE),
      Max = ~max(.x, na.rm = TRUE)
    ))
  ) %>%
  pivot_longer(everything(), names_sep = "_", names_to = c("Variable", "Stat")) %>%
  pivot_wider(names_from = Stat, values_from = value) %>%
  mutate(Variable = recode(Variable, 
                           AoA = "AOA*", 
                           AVG_PROF = "Overall",
                           Reading = "Reading",
                           Writing = "Writing",
                           Speaking = "Speaking",
                           Listening = "Listening"))

# 生成表格并添加底部脚注
kable(summary_stats, caption = "Table 1. Linguistic Background of the L2 participants", align = "lcccc") %>%
  kable_styling(full_width = FALSE) %>%
  add_footnote("* Age of Acquisition of English", notation = "symbol") %>%
  row_spec(0, bold = TRUE) # 表头加粗

内容的提问来源于stack exchange,提问作者Süleyman Yaman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:40:25