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
,因为那时我失去了该函数返回的值(它可能仍然会返回一个有效值,即使它产生了警告)。
您可能也喜欢返回警告的数量作为答案的属性。 'attr(ans,“number_of_warnings”)< - .number_of_warnings' – 2010-10-26 10:49:15
太好了!我也可以用这种方式抓住警告信息('w') – 2010-10-27 04:42:40
不客气。没有什么表示感谢你喜欢upvote。 :) – 2010-10-27 07:45:21