web-dev-qa-db-fra.com

Suppression de messages dans Knitr / Rmarkdown

Voici le code de mon fichier RMarkdown:

```{r echo=FALSE, message=FALSE}
opts_chunk$set(comment = NA, echo=FALSE, message = FALSE, warnings = FALSE)
options("getSymbols.warning4.0"=FALSE)
Sys.setenv(TZ = "GMT")
library(quantmod)
library(xtable)
library(PerformanceAnalytics)
```

```{r}
getSymbols("^RUT")
chart.TimeSeries(RUT)
dev.off()
```

Malgré les paramètres message = FALSE, warnings = FALSE, Je reçois toujours des messages de sortie dans le fichier HTML lorsque j'exécute getSymbols() et dev.off(). Leurs sorties respectives sont:

[1] "RUT"

et

null device 
          1 

Comment supprimer ces messages?

26
mchangun

Essayez d'utiliser invisible pour supprimer ces types de sortie.

```{r}
invisible(getSymbols("^RUT"))
chart.TimeSeries(RUT)
invisible(dev.off())
```

Depuis la page d'aide de ?invisible:

Cette fonction peut être utile lorsque l'on souhaite que des fonctions renvoient des valeurs qui peuvent être attribuées, mais qui ne s'impriment pas lorsqu'elles ne sont pas attribuées.

Ni l'un ni l'autre ne sont des "messages" ou des "avertissements", mais des valeurs de sortie réelles. Vous verrez que les messages pour getSymbols sont, en effet, supprimés par knitr dans la sortie.

16

Vous ne devriez jamais avoir besoin d'utiliser dev.off() lorsque vous utilisez knitr. Il prend en charge tous les appareils pour créer des tracés.

De l'auteur du package Yihui

God kills a kitten whenever you dev.off()

null device 
          1 

Est la sortie de dev.off().

Il se peut que getSymbols renvoie quelque chose étant donné que vous n'avez pas défini env

Si vous souhaitez masquer les résultats (output) (en général), vous pouvez utiliser results = 'hide' En option. Pas besoin d'envelopper quoi que ce soit dans invisible()

37
mnel

Je me suis aussi intéressé à ce problème, je voudrais ajouter qu'il devrait être warning = FALSE, ne pas warnings = FALSE

36
user190477