降价表达式和结果可以在同一个块中交错吗?

时间:2014-01-10 21:58:07

标签: r knitr r-markdown

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,但我很好奇是否有内置选项。

1 个答案:

答案 0 :(得分: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非常重要,以便始终运行此代码。