foreach()%dopar%を並列処理に使用するのが初めてで、エラーや警告の処理方法に関するいくつかの問題があります。私はforeachの()内の私のカスタマイズされたエラーメッセージを表示して試しを()を使用する場合R:foreachでエラーと警告メッセージを表示する%dopar%
% dopar%、「ネイティブ」というエラーメッセージが表示されません。この場合
test <- function(x) { if (x==2) "a"/2 } foreach(i=1:3) %dopar% { tryout <- try(test(i)) if (class(tryout)=="try-error") print("Error!") }
を」ネイティブ "エラーメッセージ:
Error in "a"/2 : non-numeric argument to binary operator
が表示されず、try()エラーキャッチのError!
のみが出力されます。しかし、foreach()%dopar%を使用しないと、両方のエラーメッセージが出力されます。では、両方のエラーメッセージを表示する方法は?
:エラーに加えてまたはしない、警告メッセージは、上記と同様のforeach()ブロックと下test <- function(x) { if (x==2) warning("Warning!") }
test()
と、例えば、印刷されていないかどうか警告があるような場合において、、
警告を表示するにはどうすればいいですか?
p.s.私は単純に%dopar%内でtry(test(i))を使用すると、 "ネイティブ"エラーメッセージと警告が出力されることがわかりましたが、実際の状況で私自身のエラーメッセージを含めたいと思っています。私もtry()
の代わりにtryCatch()
を使ってみましたが、問題は解決しませんでした。
ありがとうございます!
出力を(例えば 'doSNOW'を使用している場合は' makeCluster'の 'outfile =" "')出力する必要があるかもしれません。詳細については、[関連する質問](http://stackoverflow.com/questions/10903787/)があります。 –
問題を解決するための貴重な方向を指摘していただきありがとうございます。私は今doSNOWを使用していないが、私はそれを見ている... –