R - Markdown che evita i messaggi di caricamento del pacchetto


198

Ho usato Knitr tramite R-Studio e penso che sia abbastanza pulito. Ho un piccolo problema però. Quando sorgente un file in un R-Chunk, l'output di knitr include commenti esterni come segue:

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

Ho provato a impostare le opzioni R-chunk in vari modi, ma ancora non sembra evitare il problema:

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

```

C'è un modo per commentare questi messaggi?


2
impostare options(warn=-1)e tornare a options(warn=0)alla fine del Rmd. Si occupa di tutti i messaggi del pacchetto di avvio. Tieni presente che disattiveresti gli avvisi, ma solo durante il rendering di Rmd.
Dan Kalleward,

Risposte:


269

Puoi usare include=FALSEper escludere tutto in un pezzo.

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

Se desideri solo eliminare i messaggi, utilizza message=FALSEinvece:

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

Il fatto che resultsnon possa essere FALSEè sfortunato. Avrei preferito l'opzione pezzo resultsessere diviso in results, holde markupche sarebbe essere tutti valori booleani. Ahimè, non è così che funziona.
Capo

1
cosa succede se vogliamo disattivare i messaggi a livello globale per TUTTI i blocchi, come si fa?
Prasad Chalasani,

13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
Yihui Xie

1
@Head resultspuò essere FALSE(che è un alias di results="hide") da knitr 1.16: github.com/yihui/knitr/issues/1360
Yihui Xie

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

vedi Opzioni di blocco nei documenti Knitr


12
L' warning=FALSEunica cosa che ha funzionato per me. Sicuramente il modo migliore per includere il pezzo nella tua uscita senza i brutti avvertimenti!
Alex P. Miller,

Come impostarlo per l'intero documento ?. Devo inserirlo manualmente in ogni blocco ?.
Fadwa,

3
@Misaki Vedi il commento di Yihui sopra riguardo knitr :: opts_chunk $ set (message = FALSE)
cbare

7

La mia migliore soluzione su R Markdown era quella di creare un blocco di codice solo per caricare librerie ed escludere tutto nel blocco.

{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

Questa è una vecchia domanda, ma ecco un altro modo per farlo.

È possibile modificare il codice R stesso, invece delle opzioni chunk, avvolgendo il sourcechiamata suppressPackageStartupMessages(), suppressMessages()e / o suppressWarnings(). Per esempio:

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

Puoi anche mettere quelle funzioni attorno alle tue library()chiamate all'interno dello "source.R"script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.