So unterdrücken Sie Warnungen global in einem R-Skript


174

Ich habe ein langes R-Skript, das einige Warnungen auslöst, die ich ignorieren kann. ich könnte benutzen

suppressWarnings(expr)

für einzelne Aussagen. Aber wie kann ich Warnungen in R global unterdrücken? Gibt es dafür eine Option?

Antworten:


228

Du könntest benutzen

options(warn=-1)

Beachten Sie jedoch, dass das globale Deaktivieren von Warnmeldungen möglicherweise keine gute Idee ist.

Verwenden Sie, um Warnungen wieder einzuschalten

options(warn=0)

(oder was auch immer Ihre Standardeinstellung ist warn, siehe diese Antwort )


5
Dies funktioniert, aber der Ansatz von Francesco Napolitano vom 22. September 2015 ist die sicherere und global anwendbare Methode.
Andy Clifton

Ich stimme @Andy zu und seine Antwort sollte als akzeptiert markiert werden.
JASC

104

Du willst options(warn=-1). Beachten Sie jedoch, dass dies warn=0nicht die sicherste Warnstufe ist und nicht als die aktuelle angenommen werden sollte, insbesondere innerhalb von Skripten oder Funktionen. Der sicherste Weg, um Warnungen vorübergehend auszuschalten, ist daher:

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

[your "silenced" code]

options(warn = oldw)

41

Ich habe die printfAnrufe jetzt durch Anrufe warningim C-Code ersetzt. Es wird in der Version 2.17.2 wirksam, die morgen Abend verfügbar sein sollte. Dann sollten Sie in der Lage sein, die Warnungen mit suppressWarnings()oder einer der anderen oben genannten Methoden zu vermeiden .

suppressWarnings({ your code })

6
Dies ist der richtige Weg, um es zu tun. Sollte als Antwort markiert werden.
Denis

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.