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?

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 )


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)

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 })

66
Esta es la forma correcta de hacerlo. Debe marcarse como la respuesta.
Denis

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.