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

时间:2012-10-26 16:49:35

标签: r-markdown knitr

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

例如:

---
output: html_document
---

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

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

4 个答案:

答案 0 :(得分:57)

当然,只是做

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

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

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

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

其中绘图函数plotResults来自本地包。

答案 1 :(得分:44)

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

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

排除你提供的所有命令,它吐出的所有结果以及所有消息信息都被R吐出(例如,在库(ggplot)之后)或其他东西)

答案 2 :(得分:10)

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

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

enter image description here

答案 3 :(得分:1)

或者,您也可以通过markdownreports package动态解析标准降价文档(不含代码块本身)。