将代码延迟到 knitr 文档的末尾
Defer code to END of document in knitr
我正在尝试在 rmarkdown 中编写报告,然后使用 knitr 生成 pdf。
我希望所有代码都被推送到“文档末尾”,而只显示与我的文本交织在一起的结果。 echo='hold'
选项不执行此操作。
我的降价文件部分
Generate data
```{r chunk1,echo='hold',R.options=}
num_seq<-rnorm(100,0.2)
num_seq
```
We further report the mean of these numbers.
```{r,echo='hold' }
mean(num_seq)
```
我已尝试阅读此处 http://yihui.name/knitr/options/ 的相关文档,但我不知道该怎么做。
我认为 echo='hold'
不是一个选项。无论如何,诀窍是在包含代码的地方使用 echo=FALSE
,然后 重新使用相同的块名称 并使用 eval=FALSE
你想要打印代码的地方。 (两个位置的其他选项都可以,但这两个是最低要求。)
以下计算块所在的代码(并可选地包括它的输出),但在您指定之前不包括代码。
# Header 1
```{r chunk1, echo=FALSE}
x <- 1
x + 5
```
This is a test.
```{r chunk1, eval=FALSE}
```
结果如下:
Header 1
========
## [1] 6
This is a test.
x <- 1
x + 5
编辑:我经常在随机性的 R markdown 文档中使用它:我在一开始就存储了随机种子(无论是手动设置还是只存储当前的随机状态供以后复制)并将其显示在 annex/appendix:
# Header 1
```{r setseed, echo=FALSE, include=FALSE}
set.seed(seed <- sample(.Machine$integer.max, size=1))
seed
```
This is a test `r seed`.
# Annex A {-}
```{r showsetseed, ref.label='setseed', eval=FALSE}
```
```{r printseed, echo=FALSE}
seed
```
此示例不包含原始代码块的结果。不幸的是,结果没有被存储,如果我在以后使用相同的块名称时设置 eval=TRUE
,它将计算并呈现不同的种子。这就是 printseed
块的原因。我在第一个 setseed
块中明确 "show" seed
的原因仅仅是为了使附件中的 showsetseed
和 printseed
块流畅。 (否则,set.seed
不是 return 一个数字,所以看起来会很奇怪。)
顺便说一句:第二个示例使用 ref.label
,易慧文档 here 作为更通用的块重用方法。
顺便说一句 #2:当我说 "store the random state" 时,这并不完全正确……我正在存储一个随机生成的种子。当然,随机状态本身比单个整数大得多。我不想激怒 PRNG 之神 :-)
我正在尝试在 rmarkdown 中编写报告,然后使用 knitr 生成 pdf。
我希望所有代码都被推送到“文档末尾”,而只显示与我的文本交织在一起的结果。 echo='hold'
选项不执行此操作。
我的降价文件部分
Generate data
```{r chunk1,echo='hold',R.options=}
num_seq<-rnorm(100,0.2)
num_seq
```
We further report the mean of these numbers.
```{r,echo='hold' }
mean(num_seq)
```
我已尝试阅读此处 http://yihui.name/knitr/options/ 的相关文档,但我不知道该怎么做。
我认为 echo='hold'
不是一个选项。无论如何,诀窍是在包含代码的地方使用 echo=FALSE
,然后 重新使用相同的块名称 并使用 eval=FALSE
你想要打印代码的地方。 (两个位置的其他选项都可以,但这两个是最低要求。)
以下计算块所在的代码(并可选地包括它的输出),但在您指定之前不包括代码。
# Header 1
```{r chunk1, echo=FALSE}
x <- 1
x + 5
```
This is a test.
```{r chunk1, eval=FALSE}
```
结果如下:
Header 1
========
## [1] 6
This is a test.
x <- 1
x + 5
编辑:我经常在随机性的 R markdown 文档中使用它:我在一开始就存储了随机种子(无论是手动设置还是只存储当前的随机状态供以后复制)并将其显示在 annex/appendix:
# Header 1
```{r setseed, echo=FALSE, include=FALSE}
set.seed(seed <- sample(.Machine$integer.max, size=1))
seed
```
This is a test `r seed`.
# Annex A {-}
```{r showsetseed, ref.label='setseed', eval=FALSE}
```
```{r printseed, echo=FALSE}
seed
```
此示例不包含原始代码块的结果。不幸的是,结果没有被存储,如果我在以后使用相同的块名称时设置 eval=TRUE
,它将计算并呈现不同的种子。这就是 printseed
块的原因。我在第一个 setseed
块中明确 "show" seed
的原因仅仅是为了使附件中的 showsetseed
和 printseed
块流畅。 (否则,set.seed
不是 return 一个数字,所以看起来会很奇怪。)
顺便说一句:第二个示例使用 ref.label
,易慧文档 here 作为更通用的块重用方法。
顺便说一句 #2:当我说 "store the random state" 时,这并不完全正确……我正在存储一个随机生成的种子。当然,随机状态本身比单个整数大得多。我不想激怒 PRNG 之神 :-)