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


70

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

例如:

---
output: html_document
---

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

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

Answers:


78

当然可以

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

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

所以对于绘图,我有例如

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

绘图功能plotResults来自本地程序包。


13
或者把opts_chunk$set(echo=FALSE)一个代码块,在文档的头部设置这个全球性
本Bolker

5
确保不回显opts_chunk命令!将{r echo=FALSE} opts_chunk$set(echo=FALSE)文档放在 顶部(在代码块中)应该可以解决所有问题
Serenthia,2014年

50

您可能会知道,使用以下内容可能也会很有趣:

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

排除您给出的所有命令,它吐出的所有结果以及R吐出的所有消息信息(例如,在library(ggplot)或类似内容之后)


26

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

1)隐藏代码(单个块)

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

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

2)(全局)隐藏块。

我们可以使用函数更改knitr的默认行为knitr::opts_chunk$set。我们在文档的开头调用此函数,并将其包含include=FALSE在块头中以禁止显示任何输出:

---
output: html_document
---

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

```{r}
plot(cars)
```

3)折叠的代码块

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

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


```{r}
plot(cars)
```

在此处输入图片说明


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.