R - Відмітка, уникаючи завантаження пакетів повідомлень


198

Я використовую Knitr через R-Studio, і думаю, що це досить акуратно. Однак у мене є незначне питання. Коли я джерело файлу в R-Chunk, висновок в'язання включає зовнішні коментарі наступним чином:

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

Я намагався різними способами встановити параметри R-chunk, але все ще не здавалося, щоб уникнути проблеми:

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

```

Чи можна коментувати ці повідомлення?


2
встановити options(warn=-1)та повернутися до options(warn=0)кінця Rmd. Дбає про всі повідомлення про стартовий пакет. Зауважте, що ви б вимикали попередження, але лише під час надання Rmd.
Dan Kalleward

Відповіді:


269

Ви можете використовувати, include=FALSEщоб виключити все в шматок.

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

Якщо ви хочете лише придушити повідомлення, використовуйте message=FALSEнатомість:

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

Те, що resultsне може бути FALSE, прикро. Я волів би варіант шматка resultsбути розбитий на results, holdі markupякі всі були б логічними значеннями. На жаль, це не так працює.
Голова

1
Що робити, якщо ми хочемо відключити повідомлення глобально для ВСІХ шматок, як це зробити?
Прасад Чаласані

13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
Yihui Xie

1
@Head resultsможе бути FALSE(це псевдонім results="hide"), оскільки Knr 1.16: github.com/yihui/knitr/isissue/1360
Yihui Xie,

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

див. Параметри Chunk у документах Knitr


12
warning=FALSEЄ єдиним , що працює для мене. Однозначно найкращий спосіб включити шматок у свій результат без потворних попереджень!
Алекс П. Міллер

Як встановити це для всього документа ?. Чи потрібно вводити його в кожен шматок вручну ?.
Fadwa

3
@Misaki Дивіться коментар Yihui вище щодо knitr :: opts_chunk $ set (message = FALSE)
cbare

7

Моє найкраще рішення на R Markdown - створити фрагмент коду лише для завантаження бібліотек та виключення всього фрагменту.

{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

Це старе питання, але ось ще один спосіб зробити це.

Ви можете змінити саме R код замість опції порцій, обгортання sourceвиклику в suppressPackageStartupMessages(), suppressMessages()і / або suppressWarnings(). Наприклад:

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

Ви також можете розмістити ці функції навколо своїх library()дзвінків всередині "source.R"сценарію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.