R - Markdown避免包加载消息

Roa*_*ark 187 markdown r rstudio knitr r-markdown

我一直在使用Knitr通过R-Studio,并认为它非常整洁.我有一个小问题.当我在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':
Run Code Online (Sandbox Code Playgroud)

我试图以各种方式设置R-chunk选项,但似乎仍然没有避免这个问题:

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

```
Run Code Online (Sandbox Code Playgroud)

有没有办法评论这些消息?

Yih*_*Xie 253

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

```{r include=FALSE}
source("C:/Rscripts/source.R")
```
Run Code Online (Sandbox Code Playgroud)

如果您只想抑制消息,请message=FALSE改用:

```{r message=FALSE}
source("C:/Rscripts/source.R")
```
Run Code Online (Sandbox Code Playgroud)

  • @PrasadChalasani`knitr :: opts_chunk $ set(message = FALSE)`http://yihui.name/knitr/options/ (9认同)
  • 如果我们想为所有块全局关闭消息怎么办? (2认同)

cba*_*are 95

```{r results='hide', message=FALSE, warning=FALSE}
library(RJSONIO)
library(AnotherPackage)
```
Run Code Online (Sandbox Code Playgroud)

请参阅Knitr文档中的块选项

  • "warning = FALSE"是唯一对我有用的东西.绝对是在没有丑陋警告的情况下将大块包含在输出中的最佳方法! (12认同)
  • @Misaki看到Yihui上面关于knitr :: opts_chunk $ set的评论(消息= FALSE) (2认同)

小智 6

我在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)
Run Code Online (Sandbox Code Playgroud)


sha*_*ker 5

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

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

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

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