R-Markdown避免加载包消息


197

我一直在通过R-Studio使用Knitr,并且认为它非常简洁。我有一个小问题。当我在R-Chunk中获取文件时,knitr输出包括如下外部注释:

+ FALSE Loading required package: ggplot2
+ FALSE Loading required package: gridExtra
+ FALSE Loading required package: grid
+ FALSE Loading required package: VGAM
+ FALSE Loading required package: splines
+ FALSE Loading required package: stats4
+ FALSE Attaching package: 'VGAM'
+ FALSE The following object(s) are masked from 'package:stats4':

我试图以各种方式设置R-chunk选项,但似乎仍无法避免该问题:

```{r echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE, comment=FALSE, warning=FALSE} 
source("C:/Rscripts/source.R");

```

有什么办法可以注释掉这些消息?


2
设置options(warn=-1)并返回到options(warn=0)Rmd的末尾。负责所有启动包消息。请注意,您将关闭警告,但仅在呈现Rmd时关闭。
Dan Kalleward '17

Answers:


268

您可以使用include=FALSE排除块中的所有内容。

```{r include=FALSE}
source("C:/Rscripts/source.R")
```

如果只想禁止显示消息,请message=FALSE改用:

```{r message=FALSE}
source("C:/Rscripts/source.R")
```

results不可能的事实FALSE是不幸的。我宁愿块选项results被分为resultsholdmarkup它都将是布尔值。las,这不是它的工作方式。

1
如果我们想全局关闭所有块的消息,该怎么办?
Prasad Chalasani,2015年

13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
艺辉谢

1
@head results可以是knitr 1.16 以来FALSE的别名(是的别名results="hide"):github.com/yihui/knitr/issues/1360
Xie

102
```{r results='hide', message=FALSE, warning=FALSE}
library(RJSONIO)
library(AnotherPackage)
```

请参阅Knitr文档中的块选项


12
warning=FALSE是唯一对我有用的东西。绝对是在没有丑陋警告的情况下将块包含在输出中的最佳方法!
亚历克斯·米勒

如何为整个文档设置此设置?我是否必须手动将其放入每个块中?
Fadwa

3
@Misaki参见上面Yihui关于knitr :: opts_chunk $ set(message = FALSE)的评论
cbare

7

关于R Markdown的最佳解决方案是创建一个代码块,仅用于加载库并排除该块中的所有内容。

{r results='asis', echo=FALSE, include=FALSE,}
knitr::opts_chunk$set(echo = TRUE, warning=FALSE)
#formating tables
library(xtable)

#data wrangling
library(dplyr)

#text processing
library(stringi)

6

这是一个古老的问题,但这是另一种解决方法。

通过将source调用包装在,和/或中suppressPackageStartupMessages(),可以修改R代码本身而不是块选项。例如:suppressMessages()suppressWarnings()

```{r echo=FALSE}
suppressWarnings(suppressMessages(suppressPackageStartupMessages({
source("C:/Rscripts/source.R")
})
```

您还可以将这些函数library()放在"source.R"脚本内的调用周围。

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.