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