Rの特定のエラーをグローバルにオフにする方法はありますか?R特定のエラーをオフにする方法
たとえば、すべてのプロットコールを変更せずに、Rstudioのプロットパネルを大きくしなくても、Rstudio: "plot.new()のエラー:図の余白が大きすぎます"の一般的なエラーを無視します。
など、Matlabで行うことができると思います。どのようにRでそれを行うには?ありがとう!
Rの特定のエラーをグローバルにオフにする方法はありますか?R特定のエラーをオフにする方法
たとえば、すべてのプロットコールを変更せずに、Rstudioのプロットパネルを大きくしなくても、Rstudio: "plot.new()のエラー:図の余白が大きすぎます"の一般的なエラーを無視します。
など、Matlabで行うことができると思います。どのようにRでそれを行うには?ありがとう!
上記の解決策は、すでにsuppresX
の解決策とtryCatch
と言及しています。 dplyr
がfailwith
呼ばtryCatch
のための素晴らしいラッパーがあります:あなたの具体的な例では
library(dplyr)
toyfun <- function(x){
stopifnot(x=="coffee")
return(":)")
}
toyfun(42) # gives error message
toyfun <- failwith(":(", toyfun, quiet=T)
toyfun(42)
[1] ":("
を、あなたは問題のある機能を上書きすることができます。これは危険であり、実際にあなたを悩ませる場合にのみ使用してください。
plot <- failwith(warning("sth wrong"), plot, quiet=T)
または代わりに:このように
plot <- function(...) tryCatch(plot(...), error=function(e){})
は、あなたの代わりにbase::plot
で呼び出され、ワークスペース内のplot
と呼ばれる操作機能を、持っています。私はこれが「グローバル」なソリューションだと思います。ただし、より安全なルートは、その関数の名前を変更し、それに応じてコード内の関数呼び出しを変更することです。
ありがとうございます。特定のエラーを1つだけオフにすることはできますか? 'plot <--withwithwith(warning(" sth wrong ")、plot、quiet = T)を使用すると、すべてのエラーに対してfailwithのケースが使用されます。 (これは唯一の解決策ですか?) – berter
エラーを扱うカスタム関数を自分で定義する、他の人が概説した 'tryCatch'ソリューションを使用しない限り、私はそれに気づいていません。私は、特定のエラーをオフにする最も簡単で最善の方法は、実際にはエラーを避けるようにコードを変更することだと思います。 – coffeinjunky
(1)これは可能だとは思わない。 (2)ここで何が起こりたいのか分かりません。フィギュアマージンが大きすぎるにもかかわらず、Rにプロットを描きたがっていますか? Rのエラー(警告とは対照的に)は、通常、過去にRできなかった(または起こらない)問題にRが遭遇したことを意味します。時には、エラーを無効にすることができるオプションまたは引数がありますが、しばしばそうではありません。 –
私はこのエラーにもかかわらず、Rを続けたいと思います。たとえば、プロットが描画されず、Rスクリプトが続行されます。 – berter
ああ、そうですね。 –