0

私がやりたいことは、R でコマンド chol() を使用して、行列が正定かどうかをテストすることです。ただし、chol() コマンドがエラーを生成する場合は、エラーを生成してコードを停止するのではなく、false を出力したいと考えています。ランニングから。これを行う簡単な方法はありますか?コマンド try() をいじっていますが、それでもエラーが発生します。たとえば、行列がある場合:

mat=matrix(c(1,2,3,1,2,3,5,5,5),nrow=3,ncol=3,byrow=F)
try(chol(mat))

これでも、「chol.default(mat) のエラー: オーダー 3 の先行マイナーは正定値ではありません。」

このエラーの代わりに FALSE を生成するにはどうすればよいですか?

4

1 に答える 1

3

を使用tryCatchし、エラーが発生した場合に使用するハンドラーを定義します。

tryCatch(chol(mat), error=function(e) FALSE)
于 2013-03-07T04:30:41.713 に答える