R中的While循环重复错误

While loop in R repeat with error

我有这样的代码:

iit = 0

while(1)
{
SIGMABf=replicate(10, rnorm(10)) 
iit=iit+1
if(inherits(solve(SIGMABf), "error")){iit=iit-1;next}
if (iit==10) {break}
}

然而,inherits 函数不适用于 inverse

有没有办法捕获错误并重复?

try 功能来了。您可以使用 inherits 或更简单的 class 来查看操作是否失败。

a <- try(solve(1))
class(a)
# matrix
b <- try(solve(0))
class(b) 
# try-error

对于这种特殊情况,您最好使用 det 来查看矩阵是否为非奇异矩阵。如果det(A) != 0,那么A是可逆的。