要在knitr
中组合回显的R代码和输出结果,有一个方便的collapse=TRUE
选项。但是默认情况下,它们之间没有空格,即给出以下Rmd:
```{r, echo=TRUE, include=TRUE, collapse=TRUE}
x <- matrix(1:6, nrow=2)
x
```
它将产生包装在<pre>
标签中的输出:
x <- matrix(1:6, nrow=2)
x
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
我想得到的是一条空行,将输出和代码分隔开,但是仍然合并为一个<pre>
元素。
x <- matrix(1:6, nrow=2)
x
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
有没有办法做到这一点?我尝试在R块的末尾添加一个空行,但似乎已被删除。
答案 0 :(得分:3)
```{r, echo=-3, include=TRUE, collapse=TRUE}
x <- matrix(1:6, nrow = 2)
x
```
这将添加一个空格,echo = -3
将不返回第三行,因此返回:
x <- matrix(1:6, nrow = 2)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
答案 1 :(得分:2)
您可以使用knitr块挂钩来定义新的块选项,而不是collapse
,该钩子挂钩会折叠代码并使用其他空格输出。例如,您可以在设置块中添加:
---
output: html_document
---
```{r setup, include=FALSE}
hook_chunk = knitr::knit_hooks$get('chunk')
knitr::knit_hooks$set(chunk = function(x, options) {
regular_output = hook_chunk(x, options)
# collapse with vspace if collapse_vspace is TRUE
if (isTRUE(options$collapse_vspace))
gsub("```\n\n```", "", regular_output)
else
regular_output
})
knitr::opts_chunk$set(collapse_vspace = TRUE)
```
```{r, echo = TRUE}
x <- matrix(1:6, nrow=2)
x
```
一些有用的参考文献: