Хитрость заключается в использовании опции чанка knitr
ref.label=""
(которая принимает одну или несколько меток блока).Это требует, чтобы вы маркировали свои куски (по крайней мере те, которые вы хотите повторить).Для демонстрации я «скрыл» (echo=FALSE
) один из блоков, чтобы показать, что вывод может быть смещен (как в https://stackoverflow.com/a/30243074/3358272), хотя он все еще выполняется на месте.
---
output: md_document
---
```{r block1}
x <- 10
```
Some code explanation, next code block hidden here but still evaluated
```{r block2, echo = FALSE}
y <- 10
```
Some more code explanation
```{r block3}
z <- x + y
```
The final output
```
# 10
```
# Annex 1
Each block individually:
```{r showblock1, ref.label='block1', eval=FALSE}
```
```{r showblock2, ref.label='block2', eval=FALSE}
```
```{r showblock3, ref.label='block3', eval=FALSE}
```
# Annex 2
If you want them more compactly concatenated:
```{r showblocks, ref.label=c('block1','block2','block3'), eval=FALSE}
Создает этот файл уценки при визуализации:
x <- 10
Some code explanation, next code block hidden here but still evaluated
Some more code explanation
z <- x + y
The final output
# 10
Annex 1
=======
Each block individually:
x <- 10
y <- 10
z <- x + y
Annex 2
=======
If you want them more compactly concatenated:
x <- 10
y <- 10
z <- x + y
Вы можете выполнить рендеринг в любой формат, который вы хотите, результаты должны быть похожими.