コードが停止するのではなく、関数がエラーを返したときに NA を取得したいと考えています。
私は現在使用しています
try.test<-try(results<-lm(log(0)~1))
if(class(try.test)=="try-error"){results<-NA}
また、tryCatch で遊んでみました。
単一の機能/ライン ソリューションを見つけたいと思います。
コードが停止するのではなく、関数がエラーを返したときに NA を取得したいと考えています。
私は現在使用しています
try.test<-try(results<-lm(log(0)~1))
if(class(try.test)=="try-error"){results<-NA}
また、tryCatch で遊んでみました。
単一の機能/ライン ソリューションを見つけたいと思います。
試す
result <- tryCatch(lm(log(0)~1), error=function(err) NA)
しかし、これは log(0) からのエラーだけでなく、すべてのエラーをキャッチします。
上品ではありませんが、問題を解決する同様に短い方法です。
results <- NA
try(results<-lm(log(0)~1), silent = TRUE)
エラーを処理するエレガントな方法を探しているなら、モナドの概念を調べることをお勧めします。これらの構造を使用すると、スクリプト内の "if(!na(x))...." ボイラープレートの量が減ります。