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
是可逆的。
我有这样的代码:
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
是可逆的。