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
, потому что тогда я теряю значение, которое возвращает функция (она все равно может вернуть действительное значение, даже если сгенерировало предупреждение).