R Markdown - 将文本格式化为循环中的标题似乎仅适用于第一次循环迭代

标签 r r-markdown knitr

我正在尝试生成带有从循环动态生成的 header 的 R Markdown 文档。

我使用了类似 SO 问题的建议:Knitr: print text from code block as R markdown , Using bold text in a loop for a Word document in Rmarkdown并写道

---
title: "Untitled"
output:
  html_document:
    toc: true
    toc_depth: 5
---

## R Markdown

```{r, warning=FALSE, message=FALSE,  echo=FALSE}
library(ggplot2)
library(dplyr)
```

```{r fig.width=4, fig.height=2,  echo=FALSE, results='asis'}
experiment_names <- paste0("Experiment ", 1:3)

for (id in 1:3){ 

  cat("  \n")
  cat("### ",  experiment_names[id])
  cat("  \n")

  set.seed(id)
  plt <- 
    data.frame(x = rnorm(100)) %>%
    ggplot(aes(x = x)) + 
    geom_histogram(binwidth = 0.1)
  plot(plt)
}
```

但只有第一个循环迭代标题被正确打印。如何让另外两个人也工作?

enter image description here

最佳答案

我不知道为什么会这样,但请尝试一行而不是三行:

cat("\n\n### ", experiment_names[id], "\n")

关于R Markdown - 将文本格式化为循环中的标题似乎仅适用于第一次循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61330051/

相关文章:

r - 在绘图上添加一个框

r - 在knitr中使用YAML header 参数

r - 将图形分开打印到 PDF 文件并同时输出 R Markdown

r - 缩放电缆表以适合页面宽度

r - 使用 Word 输出在 R Markdown 文档中循环 Flextables

r - R 中的脚本化主要行为?

r - R包安装错误 "This version of R is not set up to install source packages"

r - dplyr summarise_each 标准误差函数

r - 用knitr将两个data.frame彼此对齐?

r - ggplot 中使用facet_grid 进行绘图的方法