我想使用命令行清除warnings()列表。R:如何清除所有警告
我曾嘗試沒有成功
> rm(last.warning, envir = baseenv())
Error in rm(last.warning, envir = baseenv()) :
cannot remove variables from the base environment
什麼想法?
我想使用命令行清除warnings()列表。R:如何清除所有警告
我曾嘗試沒有成功
> rm(last.warning, envir = baseenv())
Error in rm(last.warning, envir = baseenv()) :
cannot remove variables from the base environment
什麼想法?
嘗試assign("last.warning", NULL, envir = baseenv())
看看suppressWarnings()
來阻止顯示的警告。在help page for warnings
注意,它說:
」 ......這是無證其中 last.warning存儲也不是說這是 可見,這是受 改變之前。 [R 2.4.0它被存儲在工作區 ,但不再......」
比爾,你的第二個鏈接不會爲任何人誰不具備R-幫助服務器上的回送接口上的端口22913運行工作。 – 2011-04-20 03:33:57
我看了這個功能,但我仍然想要有警告。我只是想在某個時候清理堆棧。 – RockScience 2011-04-20 03:35:41
鏈接現已修復。 – 2011-04-20 09:22:24
我同意,我婉t使用try()並收集該try()生成的警告。
我現在的解決方案是
assign("last.warning", NULL, envir = baseenv())
myFit <- try(...)
warned <- warnings()
assign("last.warning", NULL, envir = baseenv())
感謝它是完美的 – RockScience 2011-04-20 03:38:24
工程像魔術。 – TMS 2013-07-26 06:30:42
我同意這是正確的答案,但我會敦促開始用戶在使用這樣的命令之前思考。這些用戶試圖做什麼?在修改一個底層變量之前要考慮一下(對於你的C++用戶來說,認爲是「私有」)。如果你想要一個新的R會話,開始一個新的R會話。使用這個和rm(list = ls())不會讓你一個。相反,如果你想刪除不正確的警告並且不應該解決(你是否確定這個?),那麼應該考慮在相應的函數中使用suppressWarnings()。否則,你可能會錯過重要的警告。 – scottkosty 2013-12-29 02:26:31