使用gtsummary在Rmarkdown导出PDF时表格缩进失效的解决咨询
在PDF中使用gtsummary输出带分类变量缩进的回归表格
问题场景
使用Rmarkdown输出PDF格式文档时,调用gtsummary::tbl_regression()生成回归表格,遇到以下问题:
- 后续调用
as_gt()转换后编织PDF时报错 - 调用
as_flextable()转换后,分类变量的缩进格式丢失
解决方案
方法1:使用as_kable_extra()(推荐)
gtsummary原生支持通过as_kable_extra()转换表格,该方法对PDF输出兼容性好,能直接保留分类变量的缩进格式,无需额外调整。
修改后的完整代码:
--- title: "test" author: "Author" date: "`r Sys.Date()`" output: pdf_document ---
library(tidyverse) library(gtsummary) library(kableExtra)
mod <- lm(mpg ~ disp + wt + factor(cyl), data = mtcars) # 生成表格并转换为kableExtra格式 tbl_regression(mod, intercept = TRUE) %>% as_kable_extra()
方法2:修复flextable的缩进问题
如果偏好使用flextable,可以手动添加缩进格式,利用flextable相关函数恢复分类变量的缩进:
mod <- lm(mpg ~ disp + wt + factor(cyl), data = mtcars) tbl_regression(mod, intercept = TRUE) %>% as_flextable() %>% # 为分类变量的子行添加左侧缩进 padding(i = ~ !is.na(variable_level), j = 1, padding.left = 15) %>% set_table_properties(layout = "autofit")
方法3:gt配合LaTeX输出设置
如果要使用gt包,需确保gt的LaTeX输出配置正确,避免报错。需安装gt包,并在转换时指定输出格式为LaTeX:
mod <- lm(mpg ~ disp + wt + factor(cyl), data = mtcars) tbl_regression(mod, intercept = TRUE) %>% as_gt() %>% gt::as_latex()
注:使用该方法需确保环境中安装了必要的LaTeX依赖(如booktabs等),若仍报错,建议检查LaTeX发行版是否完整。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

