R-将代码递送到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

edit :我在r随机性中经常使用它:我从一开始就存储随机种子(无论是手动设置还是只是存储当前的随机状态以供以后复制)和在附件/附录中显示它:

# 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块中明确"显示" seed的原因完全是这样,因此,在附件中,showsetseedprintseed块质量很好。(否则,set.seed不会返回一个数字,所以它看起来很糟糕。)

btw:第二个示例使用ref.label,Yihui在这里将其作为更通用的块重用方法。

btw#2:当我说"存储随机状态"时,那不是完全正确的...我正在存储一个随机生成的种子。当然,随机状态本身比单个整数大得多。我不想生气: - )

最新更新