在 Rmarkdown/knit 中隐藏 R 代码并仅显示结果

Posted

技术标签:

【中文标题】在 Rmarkdown/knit 中隐藏 R 代码并仅显示结果【英文标题】:Hiding the R code in Rmarkdown/knit and just showing the results 【发布时间】:2012-10-16 23:11:19 【问题描述】:

在我的 R Markdown 文档中,有时我只想生成一个报告而不显示实际代码(特别是当我将它发送给我的老板时)。如何隐藏 R 代码并只显示图形和结果?

例如:

---
output: html_document
---

```r fig.width=16, fig.height=6
plot(cars)
```

这显示了命令和情节。如何从我的 HTML 报告中删除命令?

【问题讨论】:

【参考方案1】:

没问题

```r someVar, echo=FALSE
someVariable
```

显示一些(先前计算的)变量someVariable。或者运行打印 etc pp 的代码。

所以对于绘图,我有例如

### Impact of choice of ....
```r somePlot, echo=FALSE
plotResults(Res, Grid, "some text", "some more text")
```

绘图函数plotResults 来自本地包。

【讨论】:

或将opts_chunk$set(echo=FALSE) 放在文档头部的代码块中以全局设置 确保不要回显 opts_chunk 命令!将r echo=FALSE opts_chunk$set(echo=FALSE) 放在文档顶部(在代码块中)应该可以解决所有问题【参考方案2】:

知道您可以使用它可能对您也很有趣:

r echo=FALSE, results='hide',message=FALSE
a<-as.numeric(rnorm(100))
hist(a, breaks=24)

排除您给出的所有命令,它吐出的所有结果以及 R 吐出的所有消息信息(例如,在 library(ggplot) 或其他东西之后)

【讨论】:

【参考方案3】:

只是汇总答案并扩展基础知识。以下是三个选项:

1) 隐藏代码(单个块)

我们可以在块头中包含echo=FALSE

```r echo=FALSE
plot(cars)
```

2) 隐藏块(全局)。

我们可以使用knitr::opts_chunk$set 函数更改knitr 的默认行为。我们在文档的开头调用它并在块头中包含include=FALSE 以抑制任何输出:

---
output: html_document
---

```r include = FALSE
knitr::opts_chunk$set(echo=FALSE)
```

```r
plot(cars)
```

3) 折叠的代码块

对于 HTML 输出,我们可以使用代码折叠来隐藏输出文件中的代码。它仍将包含代码,但只有在用户单击此代码后才能看到。您可以进一步阅读此内容here。

---
output:
  html_document:
    code_folding: "hide"
---


```r
plot(cars)
```

【讨论】:

我可以在使用序言中的选项编织成 PDF 时排除打印代码吗? knitr::opts_chunk$set(echo=FALSE) 有效,但我更喜欢pdf_document code_folding: "hide" 之类的选项。【参考方案4】:

或者,您还可以通过markdownreports package 即时解析标准降价文档(没有代码块本身)。

【讨论】:

以上是关于在 Rmarkdown/knit 中隐藏 R 代码并仅显示结果的主要内容,如果未能解决你的问题,请参考以下文章

在 R Shiny 中显示/隐藏整个盒子元素

如何使用操作按钮在 R Shiny 中显示和隐藏表格输出?

在 R Shiny 中,当链中的对象被隐藏时,如何维护反应链?

r 在Shiny中隐藏和显示元素

在R中隐藏个人功能

andorid 隐藏标题栏