op <- options(warn=0) #although doesn't work for any value of warn
assign("last.warning", NULL, envir = baseenv())
thisDoesntWork<- function() {
warning("HEY, this is definitely a warning!")
cat(paste("number of warnings:",length(warnings())))
}
>thisDoesntWork()
Warning in thisDoesntWork() : HEY, this is definitely a warning!
number of warnings: 0
Die Anzahl der Warnungen sollte 1 und nicht 0 sein. es scheint, dass warnings()
gibt nichts zurück, wenn es innerhalb einer Funktion aufgerufen wird. Wie kann man dies umgehen, um innerhalb einer Funktion zu prüfen, ob Warnungen aufgetreten sind, und diese auszudrucken?
Ich möchte nicht tryCatch
weil ich dann den Wert verliere, den die Funktion zurückgibt (sie kann immer noch einen gültigen Wert zurückgeben, auch wenn sie eine Warnung erzeugt hat).