8

R markdown 中的一个简单块:

```{r}
1 + 2
3 + 4
```

当 knitr 转换为 html 时会产生以下内容:

<pre><code class="r">1 + 2</code></pre>
<pre><code>## 3</code></pre>

<pre><code class="r">3 + 4</code></pre>
<pre><code>## 7</code></pre>

我正在尝试在一个块中输出表达式和结果

<pre><code class="r">
1 + 2
## 3
3 + 4
## 7
</code></pre>

我尝试修改块参数(例如结果和回声)无济于事。有没有办法做到这一点?

注意:我可能会使用::first::last选择器来破解 CSS,但我很好奇是否有内置选项。

4

1 回答 1

7

这可以使用hooks. Rmd在文档顶部添加以下代码块。md它使用在文件的最后阶段在文件上运行的文档挂钩knitting。下面定义的钩子识别后续代码块,中间没有任何文本块,并将其折叠成一个。

```{r setup, cache = F, echo = F}
knitr::knit_hooks$set(document = function(x){ 
  gsub("```\n*```r*\n*", "", x) 
})
```

笔记。在这个块中设置很重要cache = F,这样代码总是可以运行的。

于 2014-01-11T03:38:59.590 回答