2017-10-29 14 views
-1

警告を出すと、私はという個別のメッセージで終了したい簡単なループを持っています。私はそうのようなtryCatchでそれを試してみました:最初の警告でtryCatchでforループを終了するにはどうすればよいですか?

for (i in 1:10) {   
    tryCatch({ 
    sqrt(-1)}, 
    warning = function(error_message) { 
     message("My own warning message.") 
     break})} 

しかし、これはエラーを生成します。

Error in value[[3L]](cond) : no loop for break/next, jumping to top level

私はbreakを省略した場合、私が代わりに一つだけの10の警告を取得します。

答えて

2

1つのオプションは、エラーが

を表示されません。このような状況では tryCatch

for (i in 1:10) {   
    tryCatch({sqrt(-1)}, 
      warning = function(error_message) { 
      message("My own warning message.") 
      }) 
    break 
    } 

のうち、break機能を配置することです

関連する問題