2012-10-26 16 views
127

Używam Knitr przez R-Studio i myślę, że jest całkiem schludny. Mam jednak niewielki problem. Kiedy źródło pliku w R-Chunk, wyjście knitr zawiera komentarze zewnętrznych następująco:R - Markdown unikający wiadomości o ładowaniu pakietów

+ 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 R-chunk na różne sposoby, ale wciąż nie wydaje się, aby uniknąć tego problemu:

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

``` 

Czy istnieje sposób na skomentowanie tych wiadomości?

+0

ustaw 'opcje (warn = -1)' iz powrotem do 'opcji (warn = 0)' na końcu Rmd. Zajmuje się wszystkimi wiadomościami dotyczącymi pakietów startowych. Zauważ, że wyłączasz ostrzeżenia, ale tylko podczas renderowania Rmd. –

Odpowiedz

168

Można użyć include=FALSE wykluczyć wszystko w kawałku.

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

Jeśli chcesz tylko ukryć wiadomości, użyj zamiast tego message=FALSE.

Przy okazji należy zapoznać się z documentation of chunk options dla ich możliwych wartości, np. FALSE nie jest możliwą wartością dla opcji results.

+0

Fakt, że 'wyniki' nie może być" FALSE "jest niefortunny. Wolałbym opcję porcji 'wyniki' podzielić na' wyniki', 'hold' i' markup', które miałyby wszystkie wartości boolowskie. Niestety, tak nie działa. – Head

+0

co zrobić, jeśli chcemy wyłączyć wiadomości globalnie dla wszystkich porcji, jak to zrobić? –

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

zobaczyć Chunk Options w docs Knitr

+0

Ahh ... 10 sekund wcześniej niż ja !! :) –

+0

@Cardzo dziękuję! – Roark

+8

"Ostrzeżenie = FALSE" to jedyna rzecz, która zadziałała dla mnie. Zdecydowanie najlepszy sposób na dodanie kawałka do twojego wyjścia bez brzydkich ostrzeżeń! –

6

Moim najlepszym rozwiązaniem na Markdown R było stworzenie fragmentu kodu tylko do załadowania bibliotek i wykluczenia wszystkiego z porcji.

{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

To jest stare pytanie, ale oto inny sposób na zrobienie tego.

można zmodyfikować kod sam R zamiast opcji bryłki, owijając połączenie source w suppressPackageStartupMessages(), suppressMessages() i/lub suppressWarnings(). Np:

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

Można również umieścić te funkcje wokół połączeń library() wewnątrz skryptu "source.R".

Powiązane problemy