如何在gtsummary中添加无独立行的底部脚注?求新手友好替代R包
解决方案:gtsummary实现底部脚注+替代包推荐
在gtsummary中实现底部脚注
你目前用modify_table_styling()添加的是行内脚注,会占用独立行。要把脚注移到表格最底部,可按以下步骤修改代码:
- 给目标行的标签添加标记(比如
*),在tbl_summary()的label参数里调整:label = list(AVG_PROF ~ "Overall", AoA ~ "AOA*") - 移除原来的
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
相关产品推荐
相关产品推荐

