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

Mar*_*ark 56 knitr r-markdown

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

例如:

---
output: html_document
---

```{r fig.width=16, fig.height=6}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

这显示了命令和绘图.如何从HTML报告中删除命令?

Dir*_*tel 64

当然,就这么做

```{r someVar, echo=FALSE}
someVariable
```
Run Code Online (Sandbox Code Playgroud)

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

因此,对于绘图,我有例如

### Impact of choice of ....
```{r somePlot, echo=FALSE}
plotResults(Res, Grid, "some text", "some more text")
```
Run Code Online (Sandbox Code Playgroud)

绘图功能plotResults来自本地包.

  • 或者将`opts_chunk $ set(echo = FALSE)`放在文档头部的代码块中以全局设置 (10认同)
  • 确保不要回显opts_chunk命令!在文档顶部放置`{r echo = FALSE} opts_chunk $ set(echo = FALSE)`(在代码块中)应解决所有问题 (4认同)

Geo*_*oel 47

您可能也会感兴趣,因为您可以使用:

{r echo=FALSE, results='hide',message=FALSE}
a<-as.numeric(rnorm(100))
hist(a, breaks=24)
Run Code Online (Sandbox Code Playgroud)

排除你给出的所有命令,它吐出的所有结果和所有由R吐出的消息信息(例如,在库(ggplot)之后)


Mic*_*per 15

只需汇总答案并扩展基础知识.这有三个选项:

1)隐藏代码(单个块)

我们可以echo=FALSE在chunk标题中包含:

```{r echo=FALSE}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

2)隐藏块(全局).

我们可以使用该函数更改knitr的默认行为knitr::opts_chunk$set.我们在文档的开头调用它,并include=FALSE在chunk标头中包含以禁止任何输出:

---
output: html_document
---

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

```{r}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

3)折叠代码块

对于HTML输出,我们可以使用代码折叠来隐藏输出文件中的代码.它仍将包含代码,但只有在用户点击此代码后才能看到.您可以进一步了解这这里.

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


```{r}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 使用序言中的选项编织为 PDF 时可以排除打印代码吗?`knitr::opts_chunk$set(echo=FALSE)` 有效,但我更喜欢像 `pdf_document code_folding: "hide"` 这样的选项。 (2认同)