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.