R - Markdown unikający komunikatów ładowania pakietów

197

Korzystam z Knitr za pośrednictwem R-Studio i uważam, że jest całkiem fajny. Mam jednak drobny problem. Kiedy źródłowy plik w R-Chunk, wyjście knitr zawiera zewnętrzne komentarze w następujący sposób:

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

Próbowałem ustawić opcje porcji R na różne sposoby, ale nadal nie wydawałem się unikać problemu:

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

```

Czy jest jakiś sposób na skomentowanie tych wiadomości?

Ryk
źródło
2
ustawić options(warn=-1)i wrócić options(warn=0)na koniec Rmd. Zajmuje się wszystkimi komunikatami pakietu startowego. Pamiętaj, że będziesz wyłączał ostrzeżenia, ale tylko podczas renderowania Rmd.
Dan Kalleward,

Odpowiedzi:

268

Możesz użyć, include=FALSEaby wykluczyć wszystko z porcji.

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

Jeśli chcesz tylko pomijać wiadomości, użyj message=FALSEzamiast tego:

```{r message=FALSE}
source("C:/Rscripts/source.R")
```
Yihui Xie
źródło
Fakt, że resultsnie może być, FALSEjest niefortunny. Wolałbym opcja kawałek resultsbyć podzielony na results, holdi markupktóre mogłyby być wszystkie wartości logiczne. Niestety, nie tak to działa.
Head
1
co jeśli chcemy wyłączyć wiadomości globalnie dla WSZYSTKICH fragmentów, jak to zrobić?
Prasad Chalasani
13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
Yihui Xie
1
@Główka resultsmoże być FALSE(co jest pseudonimem results="hide") od knitr 1.16: github.com/yihui/knitr/issues/1360
Yihui Xie
102
```{r results='hide', message=FALSE, warning=FALSE}
library(RJSONIO)
library(AnotherPackage)
```

zobacz Opcje porcji w dokumentach Knitr

care
źródło
12
To warning=FALSEjedyna rzecz, która działała dla mnie. Zdecydowanie najlepszy sposób na włączenie fragmentu do wyjścia bez brzydkich ostrzeżeń!
Alex P. Miller,
Jak ustawić to dla całego dokumentu ?. Czy muszę wkładać go ręcznie do każdego kawałka?
Fadwa
3
@Misaki Patrz komentarz Yihui powyżej dotyczący knitr :: opts_chunk $ set (message = FALSE)
cbare
7

Moim najlepszym rozwiązaniem na R Markdown było utworzenie fragmentu kodu tylko w celu załadowania bibliotek i wykluczenia wszystkiego z tego fragmentu.

{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
źródło
6

To stare pytanie, ale oto inny sposób, aby to zrobić.

Można modyfikować kod R samego zamiast opcji bryłki, owijając sourcepołączenia w suppressPackageStartupMessages(), suppressMessages()i / lub suppressWarnings(). Na przykład:

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

Możesz także umieścić te funkcje wokół swoich library()połączeń wewnątrz "source.R"skryptu.

Shadowtalker
źródło