Supresión de mensajes en Knitr / Rmarkdown


Aquí está el código para mi archivo 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()
```

A pesar de la configuración message = FALSE, warnings = FALSE, todavía estoy recibiendo mensajes de salida en el archivo HTML cuando corro getSymbols() y dev.off(). Sus respectivos productos son:

[1] "RUT"

Y

null device 
          1 

¿Cómo puedo suprimir estos mensajes?

Author: mchangun, 2013-03-14

3 answers

Intente usar invisible para suprimir esos tipos de salida.

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

Desde la página de ayuda para ?invisible:

Esta función puede ser útil cuando se desea que las funciones devuelvan valores que se pueden asignar, pero que no se imprimen cuando no se asignan.

Ninguno de estos son "mensajes" o "advertencias", sino valores de salida reales. Verás que los mensajes para getSymbols son, de hecho, suprimidos por knitr en la salida.

 15
Author: A5C1D2H2I1M1N2O1R2T1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-14 10:11:46

Nunca debería necesitar usar dev.off() cuando use knitr. Se encarga de todos los dispositivos para crear gráficas.

Del autor del paquete Yihui

Dios mata a un gatito cada vez que dev.fuera()

null device 
          1 

Es la salida de dev.off().

Puede ser que getSymbols devuelva algo dado que no ha definido env

Si desea ocultar los resultados (output) (en general) puede utilizar results = 'hide' como una opción. No hay necesidad de envolver nada en invisible()

 37
Author: mnel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-15 22:28:42

Encontré con este problema, me gustaría añadir que debería ser warning = FALSE, no warnings = FALSE

 30
Author: user190477,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-17 02:55:24