Ответ 1
Я не думаю, что 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 со случайностью: я храню случайное семя в самом начале (устанавливаю ли его вручную или просто сохраняю текущее случайное состояние для последующего воспроизведения) и отобразить его в приложении/приложении:
# 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
. Причина, по которой я явно "показываю" seed
в первом блоке setseed
, заключается исключительно в том, что в приложении целые строки showsetseed
и printseed
хорошо текут. (В противном случае set.seed
не возвращает число, поэтому он выглядел бы странным.)
BTW: этот второй пример использует ref.label
, который Yihui документирует здесь как более общий подход к повторному использованию фрагментов.
BTW # 2: когда я сказал "хранить случайное состояние", это не совсем правильно... Я храню случайное генерируемое семя. Конечно, само случайное состояние намного больше, чем одно целое. Я не хочу гневаться на богов PRNG: -)