Comment supprimer les avertissements globalement dans un script R

174

J'ai un long script R qui jette des avertissements, que je peux ignorer. je pourrais utiliser

suppressWarnings(expr)

pour les déclarations uniques. Mais comment puis-je supprimer les avertissements dans R globalement? Y a-t-il une option pour cela?

Richard
la source

Réponses:

229

Vous pourriez utiliser

options(warn=-1)

Mais notez que désactiver globalement les messages d'avertissement n'est peut-être pas une bonne idée.

Pour réactiver les avertissements, utilisez

options(warn=0)

(ou quelle que soit votre valeur par défaut warn, voir cette réponse )

sieste
la source
5
Cela fonctionne, mais l'approche de Francesco Napolitano du 22 septembre 2015 est la méthode la plus sûre et la plus applicable à l'échelle mondiale.
Andy Clifton
Je suis d'accord avec @Andy, et sa réponse doit être marquée comme acceptée.
JASC
106

Tu veux options(warn=-1). Cependant, notez que ce warn=0n'est pas le niveau d'avertissement le plus sûr et qu'il ne doit pas être considéré comme le niveau actuel, en particulier dans les scripts ou les fonctions. Ainsi, le moyen le plus sûr de désactiver temporairement les avertissements est:

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

[your "silenced" code]

options(warn = oldw)
Francesco Napolitano
la source
41

J'ai remplacé les printfappels par des appels warningdans le code C maintenant. Il sera effectif dans la version 2.17.2 qui devrait être disponible demain soir. Ensuite, vous devriez pouvoir éviter les avertissements avec suppressWarnings()ou l'une des autres méthodes mentionnées ci-dessus.

suppressWarnings({ your code })
Bernd Fischer
la source
6
c'est la bonne façon de procéder. Doit être marqué comme réponse.
Denis
8

Jetez un œil ?optionset utilisez warn:

options( warn = -1 )
Simon O'Hanlon
la source