Когда я использую knitr для построения HTML-документ из следующего кода:предотвратить knitr/Rmarkdown от перемежения выходного куска с кодом
Chunk Output
========================================================
Outside a chunk.
```{r chunk1, results='asis'}
cat('Inside a chunk\n\n')
for (i in 1:3) {
cat('* Inside loop #', i, '\n')
}
cat('Outside a loop, but still inside the first chunk')
```
Between chunks.
```{r chunk2, results='asis'}
cat('Inside second chunk')
```
I get output где код в chunk1
перемежается с выходом из cat
заявлений , Интересно, что выход в цикле for
выводится как один блок.
Я предпочел бы, чтобы все кода от chunk1
появляться первым, а затем все выхода из chunk1
. Есть ли способ попросить Rmarkdown/knitr избегать более гранулированного переплетения, которое он сейчас делает?
Не совсем то, чего вы хотите, но вы могли бы сделать 2 куски кода, которые идентичны, тот, где вы 'Eval = false' и второй, где' эхо = false'. –
Я мог бы это сделать. Или я могу обернуть содержимое кусков в 'for (x in 1)', что позволяет Rmarkdown чередовать вывод (за счет избыточного кода в моем документе). Но я предпочел бы иметь возможность сделать это правильно. Кто-нибудь знает, возможно ли это? – Harlan
@ Харлан Я не думаю, что это легко из-за того, как knitr обрабатывает эти блоки. Минимальный взлом заключался бы в том, чтобы поместить блок внутри '{}' – hadley