warnings () funktioniert nicht innerhalb einer Funktion? Wie kann man das umgehen?

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

Anzahl der Warnungen sollte 1 anstatt 0 sein - es scheint, dasswarnings() gibt nichts zurück, wenn es innerhalb einer Funktion aufgerufen wird. Warum? Wie kann man das umgehen, um innerhalb einer Funktion zu prüfen, ob Warnungen aufgetreten sind und diese auszudrucken?

Ich möchte nicht @ verwendtryCatch, da ich dann den Wert verliere, den die Funktion zurückgibt (möglicherweise wird trotzdem ein gültiger Wert zurückgegeben, auch wenn eine Warnung generiert wurde).

Antworten auf die Frage(10)

Ihre Antwort auf die Frage