R - Markdown evitando o carregamento de mensagens

198

Eu tenho usado Knitr via R-Studio, e acho que é muito legal. Eu tenho um problema menor embora. Quando eu origino um arquivo em um R-Chunk, a saída knitr inclui comentários externos da seguinte maneira:

+ 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':

Tentei definir as opções do R-chunk de várias maneiras, mas ainda assim não parei de evitar o problema:

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

```

Existe alguma maneira de comentar essas mensagens?

Roark
fonte
2
definir options(warn=-1)e voltar para options(warn=0)no final do Rmd. Cuida de todas as mensagens do pacote de inicialização. Observe que você desativaria os avisos, mas apenas enquanto o Rmd estiver sendo renderizado.
precisa saber é o seguinte

Respostas:

269

Você pode usar include=FALSEpara excluir tudo em um pedaço.

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

Se você deseja apenas suprimir mensagens, use message=FALSE:

```{r message=FALSE}
source("C:/Rscripts/source.R")
```
Yihui Xie
fonte
O fato de que resultsnão pode ser FALSEé lamentável. Eu prefiro a opção pedaço resultsser dividida em results, holde markupque tudo seria boolean. Infelizmente, não é assim que funciona.
Cabeça
1
e se quisermos desativar as mensagens globalmente para TODOS os blocos, como você faz isso?
Prasad Chalasani
13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
Yihui Xie
1
O @Head resultspode ser FALSE(que é um apelido de results="hide") desde o knitr 1.16: github.com/yihui/knitr/issues/1360
Yihui Xie
102
```{r results='hide', message=FALSE, warning=FALSE}
library(RJSONIO)
library(AnotherPackage)
```

consulte Opções de bloco nos documentos do Knitr

cbare
fonte
12
A warning=FALSEé a única coisa que funcionou para mim. Definitivamente, a melhor maneira de incluir o pedaço na sua saída sem os avisos feios!
Alex P. Miller #
Como definir isso para o documento inteiro? Tenho que colocá-lo em cada bloco manualmente?
Fadwa
3
@Misaki Veja o comentário de Yihui acima sobre knitr :: opts_chunk $ set (message = FALSE)
cbare
7

Minha melhor solução no R Markdown foi criar um pedaço de código apenas para carregar bibliotecas e excluir tudo no pedaço.

{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)
Paul Tyler
fonte
6

Esta é uma pergunta antiga, mas aqui está outra maneira de fazê-lo.

Você pode modificar o próprio código R, em vez das opções do pedaço, envolvendo a sourcechamada em suppressPackageStartupMessages(), suppressMessages()e / ou suppressWarnings(). Por exemplo:

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

Você também pode colocar essas funções em torno de suas library()chamadas dentro do "source.R"script.

shadowtalker
fonte