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?

Richard
fonte

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 )

Sieste
fonte
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)
Francesco Napolitano
fonte
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 })
Bernd Fischer
fonte
6
esta é a maneira correta de fazer isso. Deve ser marcado como a resposta.
Denis
8

Dê uma olhada ?optionse use warn:

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