warnings () не работает внутри функции? Как можно обойти это?

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

Количество предупреждений должно быть 1, а не 0 - кажется, чтоwarnings() ничего не возвращает, если вызывается внутри функции. Зачем? Как можно обойти это, чтобы проверить в функции, были ли предупреждения, и распечатать их?

Я не хочу использоватьtryCatch, потому что тогда я теряю значение, которое возвращает функция (она все равно может вернуть действительное значение, даже если сгенерировало предупреждение).

Ответы на вопрос(5)

Ваш ответ на вопрос