首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编制sjplot作为html输出

编制sjplot作为html输出
EN

Stack Overflow用户
提问于 2021-10-20 15:44:33
回答 1查看 336关注 0票数 1

我正在使用在rmarkdown中创建一些表 (它们看起来很棒!)但是,表是作为单个html页面在我的浏览器中生成的,而不是作为一个html文件生成的。类似于这里的问题。

根据文件,我们可以使用sjtab将表编成html文件:(这正是我想要的)

代码语言:javascript
复制
```{r}

图书馆(Dplyr)

图书馆(SjPlot)

图书馆(Sjmisc)

数据(Efc)

efc %>%

group_by(e16sex,c172code) %>%

选择(e42dep,n4pstu,e16sex,c172code) %>%

sjtab(fun = "xtab")

代码语言:javascript
复制

我不知道如何将这个sjtab合并到我的用户函数中来生成绘图。我也翻阅这些文档,但找不到解决办法。现在,我必须对显示我的浏览器的每个表进行屏幕截图,并将表粘贴到一起。:(

问题:我希望在一个文件(html、pdf或word)中包含所有的表,这样我就可以向下滚动文件,同时查看所有的表。

有人能告诉我如何将每个表呈现为单个html文件吗?

这里是我的rmarkdown文件中的代码。它的运行应该没有错误.

代码语言:javascript
复制
---
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()

为(我在科尔){

代码语言:javascript
复制
plt <- sjPlot::tab_xtab(
代码语言:javascript
复制
  var.row =  dat$gear,
代码语言:javascript
复制
  var.col = dat[[i]],
代码语言:javascript
复制
  show.row.prc = TRUE,
代码语言:javascript
复制
  var.labels = c("gear size", i),
代码语言:javascript
复制
  title = title_name
代码语言:javascript
复制
)
代码语言:javascript
复制
# return(out)
代码语言:javascript
复制
print(plt)

}

}

代码语言:javascript
复制
```{r loop_print, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}

Create_plots(mtcar,‘齿轮和其他东西’) %>% pander()

代码语言:javascript
复制
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-22 19:59:49

我把你的价格定下来了,我能看出问题所在。

对我来说,下面的解决办法奏效了。这基本上是您的代码,只是在循环中没有调用每个绘图,而是保存到一个列表中。之后,您只需单独调用列表l[[1]]l[[2]]l[[3]]中的每个地块,而无需使用循环。

每当你在循环中调用情节时,你的问题就会出现。

代码语言:javascript
复制
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
  html_document: default
---

``````{r packages, include = F}

图书馆(Magrittr)

图书馆(Dplyr)

图书馆(重新登记)

图书馆(招待员)

代码语言:javascript
复制
```{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) {

代码语言:javascript
复制
  plt <- sjPlot::tab_xtab(
代码语言:javascript
复制
  var.row =  dat$gear,
代码语言:javascript
复制
  var.col = dat[[x]],
代码语言:javascript
复制
  show.row.prc = TRUE,
代码语言:javascript
复制
  var.labels = c("gear size", x),
代码语言:javascript
复制
  title = title_name)
代码语言:javascript
复制
  l[[i]] <- plt
代码语言:javascript
复制
  i = i+1

}

l[1]

l[2]

l[3]

代码语言:javascript
复制

结果(彼此之间的所有情节):

这里还有一个不需要单独调用每个元素的版本:

代码语言:javascript
复制
---
title: "testChi"
author: "g"
date: "10/15/2021"
output:
  html_document: default
---

``````{r packages, include = F}

图书馆(Magrittr)

图书馆(Dplyr)

图书馆(重新登记)

图书馆(招待员)

代码语言:javascript
复制
```{r tables, , print = F, echo = F, results="asis"}

cols <- mtcar %>% select(匹配(“mpg\cyl\disp”)) %>%名称(.)

dat <- mtcar

title_name <-“齿轮和其他东西”

I= 1;

C <-字符()

(x in cols) {

代码语言:javascript
复制
  plt <- sjPlot::tab_xtab(
代码语言:javascript
复制
  var.row =  dat$gear,
代码语言:javascript
复制
  var.col = dat[[x]],
代码语言:javascript
复制
  show.row.prc = TRUE,
代码语言:javascript
复制
  var.labels = c("gear size", x),
代码语言:javascript
复制
  title = title_name)
代码语言:javascript
复制
  c <-  paste(c, plt$knitr)

}

knitr::raw_html(c)

代码语言:javascript
复制

我认为通常您必须避免在tab_xtab()的返回对象上单独打印语句,因为它始终是一个完整的html页面。而返回对象的$knitr并不是一个完整的html页面,而是表的html代码。

另一个版本正好适合最初的示例,并提供一个函数:

代码语言:javascript
复制
  ---
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 <-字符()

为(我在科尔){

代码语言:javascript
复制
plt <- sjPlot::tab_xtab(
代码语言:javascript
复制
  var.row =  dat$gear,
代码语言:javascript
复制
  var.col = dat[[i]],
代码语言:javascript
复制
  show.row.prc = TRUE,
代码语言:javascript
复制
  var.labels = c("gear size", i),
代码语言:javascript
复制
  title = title_name
代码语言:javascript
复制
)

C <-粘贴(c,plt$针织品)

}

knitr::raw_html(c)

}

代码语言:javascript
复制
```{r loop_print, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}

Create_plots(汽车,齿轮和其他东西)

代码语言:javascript
复制
```{r loop_print2, results = 'asis',error=FALSE, warning=FALSE, message=FALSE}

Create_plots(地铁,“其他东西”)

代码语言:javascript
复制
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69649140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档