2016-05-24 13 views
2

Rの特定のエラーをグローバルにオフにする方法はありますか?R特定のエラーをオフにする方法

たとえば、すべてのプロットコールを変更せずに、Rstudioのプロットパネルを大きくしなくても、Rstudio: "plot.new()のエラー:図の余白が大きすぎます"の一般的なエラーを無視します。

など、Matlabで行うことができると思います。どのようにRでそれを行うには?ありがとう!

+0

(1)これは可能だとは思わない。 (2)ここで何が起こりたいのか分かりません。フィギュアマージンが大きすぎるにもかかわらず、Rにプロットを描きたがっていますか? Rのエラー(警告とは対照的に)は、通常、過去にRできなかった(または起こらない)問題にRが遭遇したことを意味します。時には、エラーを無効にすることができるオプションまたは引数がありますが、しばしばそうではありません。 –

+0

私はこのエラーにもかかわらず、Rを続けたいと思います。たとえば、プロットが描画されず、Rスクリプトが続行されます。 – berter

+0

ああ、そうですね。 –

答えて

0

これを確認してください。これがエラーです。

stop("Urgh, the iphone is in the blender !") 

これはtry catchを使用したソリューションです。

tryCatch({ 
    stop("Urgh, the iphone is in the blender !") 
}, error=function(e){}) 
+0

私はこれが動作するとは思わない? –

+0

よかった、ありがとう。特定のエラーを1つだけオフにすることはできますか? – berter

+0

今すぐお試しください。 – anindya

-1

私はあなたがsuppressWarnings(plot(...))のためか、それがメッセージsuppressMessages(plot(...))であれば見ていると思います。

+1

エラーに関係しているので、むしろ 'try'や' tryCatch'と思っています... – Roland

+0

はい、エラーでは機能しません。だから、ニコラとローランドが示唆したようにtryまたはtryCatchを使う唯一の方法かもしれません。ありがとう。 – berter

0

上記の解決策は、すでにsuppresXの解決策とtryCatchと言及しています。 dplyrfailwith呼ば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と呼ばれる操作機能を、持っています。私はこれが「グローバル」なソリューションだと思います。ただし、より安全なルートは、その関数の名前を変更し、それに応じてコード内の関数呼び出しを変更することです。

+0

ありがとうございます。特定のエラーを1つだけオフにすることはできますか? 'plot <--withwithwith(warning(" sth wrong ")、plot、quiet = T)を使用すると、すべてのエラーに対してfailwithのケースが使用されます。 (これは唯一の解決策ですか?) – berter

+0

エラーを扱うカスタム関数を自分で定義する、他の人が概説した 'tryCatch'ソリューションを使用しない限り、私はそれに気づいていません。私は、特定のエラーをオフにする最も簡単で最善の方法は、実際にはエラーを避けるようにコードを変更することだと思います。 – coffeinjunky

関連する問題