我正在准备一份以执行摘要开头的 .Rmd 文档。我想包含一些内联 R 代码来预先展示一些关键结果;但是,这些结果作为本文件后面正文的一部分进行计算。
有没有办法在实际计算中不按顺序/顺序呈现渲染文档中的结果?
最佳答案
您可以在 knitr 中使用块重用(参见 http://yihui.name/knitr/demo/reference/)。在这里,您将首先分析块,但不创建输出,然后输出摘要,然后是详细信息。这是一些快速 Markdown knitr 代码来显示这一点:
```{r chunk1, echo=FALSE, results='hide'}
x <- rnorm(1)
x
```
the value of x is `r x`.
```{r chunk2, ref.label='chunk1', echo=TRUE, results='markup', eval=2}
```
请注意,除非您采取措施防止这种情况发生(在我的示例中为 eval=2),否则代码将被评估两次。
另一种选择是创建 2 个子文档,第一个运行您的主代码并创建输出,第二个创建摘要。然后在您的父文档中首先包含摘要,然后是详细信息部分。我认为您需要手动运行 knitr 以便您以正确的顺序执行,自动子文档工具可能会以错误的顺序运行。
关于r - 如何在 R markdown 中乱序显示变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311792/