0

考虑这个简单的例子:

---
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应该在两张不同的幻灯片上进行。

上面的代码不起作用。我什至为此使用了正确的软件包吗?有任何想法吗?

谢谢!

4

3 回答 3

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)
}
```
于 2018-07-05T21:20:02.743 回答
2

要摆脱那个假表,您可以尝试放入options(kableExtra.html.bsTable = T)您的设置部分。

于 2018-07-17T16:52:32.543 回答
1

这是解决方案的开始。您可以通过自己制作字符串或使用pander'spandoc.*函数来使用降价打印字符串。如果您results="asis"为该块设置,它将被编译为与任何其他降价相同。我曾经cat制作##标题,但注释掉了两个pander功能,您也可以尝试制作标题或水平规则来拆分幻灯片。

这里pander有关于函数的更多细节,以及其他 SO 问题,例如这个

---
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)
}
```

一个问题是,当我编织这个时,我没有得到你所期望的条纹表。如果我在这个块之前添加一张幻灯片并在其中放置一个带有这些kableExtra设置的表格,我得到条纹,但第一个表格也很丑陋......我不确定这是某个地方的错误或冲突的 CSS 还是什么。

于 2018-07-05T21:22:58.903 回答