如何在R的sjPlot包tab_model生成的回归表底部添加脚注?
给sjPlot::tab_model生成的回归表格添加脚注的方法
方法1:使用tab_model内置的footnote参数
sjPlot的tab_model函数本身支持通过footnote参数直接添加脚注,这是最简便的方式:
reg_1 <- lm(Outcome ~ V1 + V2 + V3 + V4, data = df_1) reg_2 <- lm(Outcome ~ V1 + V2 + V3 + V4, data = df_2) tableA <- tab_model( reg_1, reg_2, auto.label = TRUE, show.se = TRUE, show.ci = FALSE, p.style = "scientific_stars", dv.labels = c("Model1","Model2"), pred.labels = c("Intercept","V1", "V2", "V3", "V4"), title = "Table A", digits = 3, # 添加脚注 footnote = "*p<0.05, **p<0.01, ***p<0.001;系数下方括号内为标准误" ) tableA
方法2:手动修改HTML对象添加自定义脚注
如果需要更灵活的排版(比如多行脚注、特殊格式),可以借助htmltools包修改tab_model返回的HTML对象:
library(htmltools) # 生成原始表格 tableA <- tab_model( reg_1, reg_2, auto.label = TRUE, show.se = TRUE, show.ci = FALSE, p.style = "scientific_stars", dv.labels = c("Model1","Model2"), pred.labels = c("Intercept","V1", "V2", "V3", "V4"), title = "Table A", digits = 3 ) # 拼接表格和自定义脚注 table_with_footnote <- tagList( tableA, tags$p( style = "font-size: 0.8em; margin-top: 12px; color: #666;", "注1:模型为普通最小二乘(OLS)回归;注2:样本分别来自数据集df_1和df_2" ) ) # 输出带脚注的表格 print(table_with_footnote)
方法3:通过CSS自定义脚注样式
若需要精细化控制脚注的外观(比如边框、对齐方式、字体样式),可以结合CSS实现:
library(htmltools) tableA <- tab_model(...) # 此处省略原始表格生成代码 # 定义CSS样式+拼接表格与脚注 table_styled <- tagList( # 自定义CSS样式 tags$style(HTML(" .custom-footnote { font-size: 0.85em; color: #444; border-top: 1px solid #eee; padding: 8px 0 0 0; margin-top: 15px; text-align: justify; } ")), tableA, # 应用样式的脚注 tags$div(class = "custom-footnote", "*p<0.05, **p<0.01, ***p<0.001;标准误未做稳健性调整,若需稳健标准误可使用sandwich包重构模型" ) ) print(table_styled)
如果是在RMarkdown文档中使用,也可以直接在文档开头的CSS块中定义样式,后续添加脚注元素时直接调用类名即可。
内容的提问来源于stack exchange,提问作者flâneur
相关产品推荐
相关产品推荐

