Cómo suprimir advertencias globalmente en un script R

174

Tengo una secuencia de comandos R larga que arroja algunas advertencias, que puedo ignorar. Podría usar

suppressWarnings(expr)

para declaraciones individuales. Pero, ¿cómo puedo suprimir las advertencias en R a nivel mundial? ¿Hay una opción para esto?

Ricardo
fuente

Respuestas:

228

Podrías usar

options(warn=-1)

Pero tenga en cuenta que desactivar los mensajes de advertencia a nivel mundial podría no ser una buena idea.

Para volver a activar las advertencias, use

options(warn=0)

(o para lo que sea su valor predeterminado warn, vea esta respuesta )

sieste
fuente
55
Esto funciona, pero el enfoque de Francesco Napolitano del 22 de septiembre de 2015 es el método más seguro y más aplicable a nivel mundial.
Andy Clifton
Estoy de acuerdo con @Andy, y su respuesta debe marcarse como la aceptada.
JASC 01 de
106

Que desea options(warn=-1). Sin embargo, tenga en cuenta que warn=0no es el nivel de advertencia más seguro y no debe asumirse como el nivel actual, particularmente dentro de los scripts o funciones. Por lo tanto, la forma más segura de desactivar temporalmente las advertencias es:

oldw <- getOption("warn")
options(warn = -1)

[your "silenced" code]

options(warn = oldw)
Francesco Napolitano
fuente
41

He reemplazado las printfllamadas con llamadas warningen el código C ahora. Será efectivo en la versión 2.17.2 que debería estar disponible mañana por la noche. Entonces debería poder evitar las advertencias con suppressWarnings()cualquiera de los otros métodos mencionados anteriormente.

suppressWarnings({ your code })
Bernd Fischer
fuente
66
Esta es la forma correcta de hacerlo. Debe marcarse como la respuesta.
Denis
8

Echa un vistazo ?optionsy usa warn:

options( warn = -1 )
Simon O'Hanlon
fuente