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?


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")
```

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


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)

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.