输出FALSE而不是R中的错误

时间:2013-03-07 04:28:31

标签: r error-handling matrix

我想要做的是使用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而不是这个错误?

1 个答案:

答案 0 :(得分:3)

使用tryCatch,并定义在发生错误时使用的处理程序:

tryCatch(chol(mat), error=function(e) FALSE)