在Rmarkdown中生成动态.tabset

时间:2019-12-26 19:09:21

标签: r r-markdown knitr pandoc

我想创建3个.tabset,在虹膜数据集上每个物种一级创建一个(示例)。 在每个.tabset上,需要3个或更多标签。每个选项卡都会有您自己的图。

我写了这段代码:

```{r echo=FALSE, results='asis'}

library(tidyverse)

for(especies in levels(iris$Species)){ 
  cat('\n#', especies, '{.tabset}', '\n')
  cat('\n##',  'Petal Lengh x Sepal Length', '\n')
  iris %>%
    filter(
      Species == especies
    ) %>%
    ggplot(
      aes(
        x = Sepal.Length,
        y = Petal.Length
      )
    ) +
    geom_point() -> p
  print(p)
  cat('\n')
  cat('\n##', 'Sepal Length', '\n')
    iris %>%
    filter(
      Species == especies
    ) %>%
    ggplot(
      aes(
        x = Sepal.Length
      )
    ) +
    geom_histogram() -> p
  print(p)
  cat('\n')
  cat('\n##', 'Petal Length', '\n')
    iris %>%
    filter(
      Species == especies
    ) %>%
    ggplot(
      aes(
        x = Petal.Length
      )
    ) +
    geom_histogram() -> p
  print(p)
  }
```

我不知道为什么它不起作用。有什么想法吗?

谢谢!

堆栈不断询问我更多信息以发布问题,因此我不得不写更多内容才能被发布。

2 个答案:

答案 0 :(得分:1)

两件事可以达到预期效果:

1)将<button type="submit" onClick= {this.onSubmit}>next page name</button> 插入为块
2)在上次{r, results = "asis"}呼叫之后添加cat('\n')

答案 1 :(得分:0)

这是我认为可以很好地替换图形的内容

library(ggforce)


ggplot(iris) +
  aes(color = Species,fill = Species) +
  geom_autohistogram() +
  geom_autopoint() +
  geom_autodensity() +
  facet_matrix(vars(-Species), layer.diag = 1, layer.upper = 3, 
               grid.y.diag = FALSE)