プログラミング

シンプルに使い方を紹介

【R】エラーをtry catchで回避する

silentをTRUEにすればエラーメッセージは表示されない。

e<-try( func(),silent=FALSE)
if( class(e) == "try-error") {
  #エラー時の処理
}else{
  #成功時の処理
}

例えば、文字列検索関数str_extractを実行したときに

'pattern'引数が不正です。

というようなエラーが出た時、どのpatternがエラーを起こしたのかエラーは吐き出してくれない。 そこで、try関数を利用することで、エラーの発生箇所を知ることができる。

tryCatch({
      # エラーや警告が発生したときに例外処理を行いたいコード
    }, 
    error = function(e) {
      #エラーが発生した時の処理
    },
    warning = function(e) {
      #警告が発生した時の処理
    },
    finnaly = {
      #ここに記載したコードは必ず実行される
    },
    silent = TRUE
  )