我正在使用在rmarkdown中创建一些表 (它们看起来很棒!)但是,表是作为单个html页面在我的浏览器中生成的,而不是作为一个html文件生成的。类似于这里的问题。
根据文件,我们可以使用sjtab将表编成html文件:(这正是我想要的)
```{r}图书馆(Dplyr)
图书馆(SjPlot)
图书馆(Sjmisc)
数据(Efc)
efc %>%
group_by(e16sex,c172code) %>%
选择(e42dep,n4pstu,e16sex,c172code) %>%
sjtab(fun = "xtab")
我不知道如何将这个sjtab合并到我的用户函数中来生成绘图。我也翻阅这些文档,但找不到解决办法。现在,我必须对显示我的浏览器的每个表进行屏幕截图,并将表粘贴到一起。:(
问题:我希望在一个文件(html、pdf或word)中包含所有的表,这样我就可以向下滚动文件,同时查看所有的表。
有人能告诉我如何将每个表呈现为单个html文件吗?
这里是我的rmarkdown文件中的代码。它的运行应该没有错误.
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
pdf_document: default
word_document: default
html_document: default
---
```{r setup, include=FALSE, error=FALSE, warning=FALSE}图书馆(Magrittr)
图书馆(Dplyr)
图书馆(重新登记)
图书馆(招待员)
%>%选择(匹配(“Q44[:位数:]”)) %>%名称(.)
cols <- mtcar %>% select(匹配(“mpg\cyl\disp”)) %>%名称(.)
create_plots <-函数(dat,title_name) {
学校&;- enquo()
为(我在科尔){
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)# return(out)print(plt)}
}
```{r loop_print, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}Create_plots(mtcar,‘齿轮和其他东西’) %>% pander()
发布于 2021-10-22 19:59:49
我把你的价格定下来了,我能看出问题所在。
对我来说,下面的解决办法奏效了。这基本上是您的代码,只是在循环中没有调用每个绘图,而是保存到一个列表中。之后,您只需单独调用列表l[[1]]、l[[2]]、l[[3]]中的每个地块,而无需使用循环。
每当你在循环中调用情节时,你的问题就会出现。
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
html_document: default
---
``````{r packages, include = F}图书馆(Magrittr)
图书馆(Dplyr)
图书馆(重新登记)
图书馆(招待员)
```{r tables, , print = F, echo = F, results="asis"}cols <- mtcar %>% select(匹配(“mpg\cyl\disp”)) %>%名称(.)
dat <- mtcar
title_name <-“齿轮和其他东西”
L= list()
I= 1;
(x in cols) {
plt <- sjPlot::tab_xtab( var.row = dat$gear, var.col = dat[[x]], show.row.prc = TRUE, var.labels = c("gear size", x), title = title_name) l[[i]] <- plt i = i+1}
l[1]
l[2]
l[3]
结果(彼此之间的所有情节):

这里还有一个不需要单独调用每个元素的版本:
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
html_document: default
---
``````{r packages, include = F}图书馆(Magrittr)
图书馆(Dplyr)
图书馆(重新登记)
图书馆(招待员)
```{r tables, , print = F, echo = F, results="asis"}cols <- mtcar %>% select(匹配(“mpg\cyl\disp”)) %>%名称(.)
dat <- mtcar
title_name <-“齿轮和其他东西”
I= 1;
C <-字符()
(x in cols) {
plt <- sjPlot::tab_xtab( var.row = dat$gear, var.col = dat[[x]], show.row.prc = TRUE, var.labels = c("gear size", x), title = title_name) c <- paste(c, plt$knitr)}
knitr::raw_html(c)
我认为通常您必须避免在tab_xtab()的返回对象上单独打印语句,因为它始终是一个完整的html页面。而返回对象的$knitr并不是一个完整的html页面,而是表的html代码。
另一个版本正好适合最初的示例,并提供一个函数:
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
html_document: default
---
```{r setup, include=FALSE, error=FALSE, warning=FALSE}图书馆(Magrittr)
图书馆(Dplyr)
图书馆(重新登记)
图书馆(招待员)
cols <- mtcar %>% select(匹配(“mpg\cyl\disp”)) %>%名称(.)
create_plots <-函数(dat,title_name) {
C <-字符()
为(我在科尔){
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)C <-粘贴(c,plt$针织品)
}
knitr::raw_html(c)
}
```{r loop_print, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}Create_plots(汽车,齿轮和其他东西)
```{r loop_print2, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}Create_plots(地铁,“其他东西”)
https://stackoverflow.com/questions/69649140
复制相似问题