我想要做的是使用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而不是这个错误?
答案 0 :(得分:3)
使用tryCatch
,并定义在发生错误时使用的处理程序:
tryCatch(chol(mat), error=function(e) FALSE)