在 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 代码并仅显示结果的主要内容,如果未能解决你的问题,请参考以下文章