Rmd / HTML报表中代码块输出的顺序

时间:2019-05-07 00:27:06

标签: r-markdown knitr

我想在使用knitr / rmarkdown生成的HTML报告的顶部插入一个摘要图。但是此图的输入取决于从下游代码块和子文档生成的输出。有没有一种方法可以不必将摘要图放在文档末尾?

我尝试在顶级代码块中使用ref.label ='last'选项(使用eval = FALSE)在文档末尾添加重复的代码块{r last,eval = TRUE},但没有为我工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以在文档中的任意位置插入HTML,并使用knitr来引用该图。

要弄清楚名称,请暂时将YAML标头更改为以下内容:

  output: 
    html_document:
      self_contained: FALSE

这不会在输出中嵌入数字,它们将保存在单独的目录中。在编辑器中打开输出,或在浏览器中查看源,然后查找显示该图的行。在下面的测试示例中,此代码正在显示它:

<p><img src="Untitled2_files/figure-html/rnormplot-1.png" width="672" /></p>

我将该行复制到文档中,并删除了self_contained设置,并获得了以下源代码:

---
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

This is the figure before it was generated:

<p><img src="Untitled2_files/figure-html/rnormplot-1.png" width="672" /></p>

And here it is being generated:

```{r rnormplot}
x <- rnorm(100)
plot(x)
```

一个关键是要命名生成绘图的代码块(我的命名为rnormplot),因为这有助于确保图形名称独立于文档的其余部分。