r - Markdown 表达式和结果可以交错在同一个 block 中吗?

标签 r knitr r-markdown

R markdown 中的一个简单 block :

```{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>

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

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

我尝试修改 block 参数(例如结果和回显),但无济于事。有什么办法可以实现这一点吗?

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

最佳答案

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

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

注意。在此 block 中设置 cache = F 非常重要,以便此代码始终运行。

关于r - Markdown 表达式和结果可以交错在同一个 block 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21055183/

相关文章:

read.table 原样

r - 如何禁用knitr中的整个代码块?

r-markdown - 为什么 Rmd 不呈现为 pdf 而 html 很好

r - Pandoc 同时使用 R markdown 和 cron 命令

latex - 如何将 Rmarkdown 文件转换为工作 latex 文件

r - 如何将字符中的月份转换为数字,例如,9月转换为9

r - 如何通过将行组合成列表来折叠小标题?

r - 具有多个绘图的动态选项卡 r markdown

css - 将类添加到 knitr 生成的代码块

R markdown/bookdown - 如何在摘要下方显示关键字?