2012-10-26 18 views
127

Ho usato Knitr tramite R-Studio e penso che sia abbastanza pulito. Ho un problema minore però. Quando ho fonte un file in un R-Chunk, l'uscita knitr include commenti esterni come segue:R - Markdown che evita i messaggi di caricamento del pacchetto

+ 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 cercato di impostare le opzioni R-Chunk in vari modi, ma ancora non sembrava per 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?

+0

imposta 'opzioni (warn = -1)' e torna a 'options (warn = 0)' alla fine del Rmd. Si prende cura di tutti i messaggi del pacchetto di avvio. Tieni presente che stai disattivando gli avvisi, ma solo mentre viene eseguito il rendering di Rmd. –

risposta

168

È possibile utilizzare include=FALSE per escludere tutto in un pezzo.

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

Se si desidera solo per sopprimere i messaggi, usare message=FALSE invece.

BTW, consultare lo documentation of chunk options per i loro possibili valori, ad es. FALSE non è un valore possibile per l'opzione results.

+0

Il fatto che 'results' non possa essere' FALSE' è sfortunato. Preferirei che l'opzione chunk "results" fosse divisa in 'results',' hold' e 'markup', che sarebbero tutti valori booleani. Ahimè, non è così che funziona. – Head

+0

e se volessimo disattivare i messaggi a livello globale per TUTTI i blocchi, come si fa? –

+4

@PrasadChalasani 'knitr :: opts_chunk $ set (message = FALSE)' http://yihui.name/knitr/options/ –

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

vedere Chunk Options nella documentazione Knitr

+0

Ahh ... 10 secondi prima di me !! :) –

+0

@cbare GRAZIE GRAZIE! – Roark

+8

Il 'warning = FALSE' è l'unica cosa che ha funzionato per me. Sicuramente il modo migliore per includere il pezzo nel tuo output senza i brutti avvisi! –

6

La mia soluzione migliore su R Markdown era di creare un chunk di codice solo per caricare le 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) 
0

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

è possibile modificare il codice di R stesso, invece delle opzioni chunk, avvolgendo la chiamata source in suppressPackageStartupMessages(), suppressMessages(), e/o suppressWarnings(). Per esempio:

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

Si può anche mettere quelle funzioni intorno agli library() chiamate all'interno dello script "source.R".

Problemi correlati