如何在RMarkdown中将sjPlot交叉表整合输出到单个HTML文件
解决方案
直接修改你的RMarkdown代码即可实现所有交叉表输出到同一文件,修改后的完整可运行代码如下:
--- title: "testChi" author: "g" date: "10/15/2021" output: html_document: default pdf_document: default word_document: default --- ```{r setup, include=FALSE, error=FALSE, warning=FALSE} library(magrittr) library(dplyr) library(readr) library(sjPlot) cols <- mtcars %>% select(matches("mpg|cyl|disp")) %>% names(.) create_plots <- function(dat,title_name) { for (i in cols) { plt <- sjPlot::tab_xtab( var.row = dat$gear, var.col = dat[[i]], show.row.prc = TRUE, var.labels = c("gear size", i), title = title_name, # 新增参数:禁止弹出浏览器,返回HTML源码 use.viewer = FALSE ) # 直接输出HTML内容到编译流 cat(plt$knitr) # 可选:每个表格之间加水平分隔线,区分更清晰 cat("<hr style='border:1px solid #eee; margin:2rem 0;'/>") } }
create_plots(mtcars, 'gear and stuff')
# 核心改动说明 - 给`sjPlot::tab_xtab`添加`use.viewer = FALSE`参数:关闭默认的独立浏览器页面弹出逻辑,函数会返回包含表格HTML源码的对象 - 循环内调用`cat(plt$knitr)`输出:将表格的HTML源码直接注入RMarkdown的编译流,配合代码块的`results = 'asis'`参数,即可直接渲染到最终文件中 - 移除了冗余的`pander`调用:不需要额外转换格式,sjPlot生成的HTML已经可直接渲染 编译为HTML格式即可得到所有表格放在同一页面、可滚动查看的效果,如需导出为PDF或Word,直接在YAML头部修改对应output格式即可正常编译。 --- 内容的提问来源于stack exchange,提问作者NewBee
相关产品推荐
相关产品推荐

