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

96

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

例如:

---
output: html_document
---

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

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

4个回答

85
当然,只需要去做。
```{r someVar, echo=FALSE}
someVariable
```

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

所以对于绘图,我有例如:

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

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


15
将英语翻译成中文。 仅返回已翻译的文本:或者在文档头部放置 opts_chunk $ set(echo = FALSE) 以全局设置。 - Ben Bolker
6
确保不要重复使用 opts_chunk 命令!在文档顶部(代码块中)放置 {r echo=FALSE} opts_chunk$set(echo=FALSE) 应该可以解决问题。 - Serenthia

57

你可能也会感兴趣知道,你可以使用:

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

排除所有你输入的命令,它输出的结果以及 R 输出的所有信息(例如,在 library(ggplot) 或其他情况下)。


1
很好,results='hide' 抑制了文本输出,但显示图形! - kjetil b halvorsen

53

这里只是整合答案并对基础知识进行扩展,以下有三个选项:

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 输出,我们可以使用代码折叠功能隐藏输出文件中的代码。虽然仍将包括代码,但只有当用户单击时才能看到它。您可以在这里进一步阅读有关此功能的信息。

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


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

输入图像描述


2
我可以在导言中使用选项来排除打印代码,以便将其编织为PDF吗?knitr::opts_chunk$set(echo=FALSE)可以实现,但我更喜欢像pdf_document code_folding: "hide"这样的选项。 - Flo

1

或者,您也可以通过 markdownreports包 在运行时解析一个标准的Markdown文档(不含代码块本身)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接