考虑以下简单示例:
---
title: "Untitled"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Slide with R Output
```{r t, warning=FALSE, message=FALSE}
library(knitr)
library(kableExtra)
library(dplyr)
for(threshold in c(20, 25)) {
cars %>%
filter(dist < threshold) %>%
kable('html') %>%
kable_styling(bootstrap_options = "striped")
}
```
在这里,我只想将for loop
的每个输出打印到另一张幻灯片中。在此示例中,有两次对kable
的调用应该在两张不同的幻灯片上进行。
上面的代码不起作用。我是否为此使用了正确的软件包?有什么想法吗?
谢谢!
答案 0 :(得分:2)
您可以使用asis
选项:
---
title: "Untitled"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(kableExtra)
library(dplyr)
# needed so r will include javascript/css dependencies needed for striped tables:
kable(cars, "html") %>% kable_styling(bootstrap_options = "striped")
```
```{r, results = "asis"}
for (threshold in c(20, 25)) {
cat("\n\n##\n\n")
x <- cars %>%
filter(dist < threshold) %>%
kable('html') %>%
kable_styling(bootstrap_options = "striped")
cat(x)
}
```
答案 1 :(得分:2)
要摆脱该伪造的表,您可以尝试将options(kableExtra.html.bsTable = T)
放在设置部分。
答案 2 :(得分:1)
这是解决方案的开始。您可以自己制作字符串,也可以使用pander
的{{1}}函数通过markdown打印字符串。如果您为该块设置pandoc.*
,它将像其他任何降价一样被编译。我使用results="asis"
制作了cat
标题,但注释了两个##
函数,您也可以尝试制作标题或水平尺来分割幻灯片。
有关pander
函数here的更多详细信息,以及诸如this one之类的其他SO问题。
pander
一个问题是,当我编织它时,我没有得到您期望的条纹表。如果我在此块之前添加一张幻灯片,并使用这些---
title: "Untitled"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(kableExtra)
library(dplyr)
```
```{r, results='asis'}
for(threshold in c(20, 25)) {
# pander::pandoc.header(sprintf("Threshold = %s", threshold))
# pander::pandoc.horizontal.rule()
cat(paste("\n##", "Threshold =", threshold), "\n")
tbl <- cars %>%
filter(dist < threshold) %>%
kable(format = "html") %>%
kable_styling(bootstrap_options = "striped")
print(tbl)
}
```
设置在其中放置一张桌子,我会做得到条纹,但是第一个桌子也很丑陋...我不是确定这是错误还是CSS冲突或其他地方。