Como suprimir avisos globalmente em um script R


174

Eu tenho um longo script R que lança alguns avisos, que posso ignorar. eu poderia usar

suppressWarnings(expr)

para declarações únicas. Mas como posso suprimir avisos no R globalmente? Existe uma opção para isso?

Respostas:


228

Você poderia usar

options(warn=-1)

Mas observe que desativar as mensagens de aviso globalmente pode não ser uma boa ideia.

Para ativar os avisos novamente, use

options(warn=0)

(ou seja qual for o seu padrão warn, veja esta resposta )


5
Isso funciona, mas a abordagem de Francesco Napolitano de 22 de setembro de 2015 é o método mais seguro e aplicável globalmente.
Andy Clifton

Eu concordo com @Andy, e sua resposta deve ser marcada como a aceita.
JASC

105

Você quer options(warn=-1). No entanto, observe que esse warn=0não é o nível de aviso mais seguro e não deve ser assumido como o atual, principalmente em scripts ou funções. Portanto, a maneira mais segura de desativar temporariamente os avisos é:

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

[your "silenced" code]

options(warn = oldw)

41

Substituí as printfchamadas por chamadas warningno código C agora. Será eficaz na versão 2.17.2, que deve estar disponível amanhã à noite. Você deve evitar os avisos com suppressWarnings()ou qualquer um dos outros métodos mencionados acima.

suppressWarnings({ your code })

6
esta é a maneira correta de fazer isso. Deve ser marcado como a resposta.
Denis

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.