2016-03-31 8 views
0

Ich habe einen Code wie folgt:While-Schleife in R Wiederholung mit Fehlern

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} 
} 

jedoch die inherits Funktion für die inversen nicht

Arbeits

Gibt es eine Möglichkeit, den Fehler zu fangen und wiederholen?

+0

Ich bekomme keinen Fehler mit Ihrem Code. –

Antwort

0

try Funktion ist hier. Sie können inherits oder einfacher class verwenden, um zu sehen, ob der Vorgang fehlgeschlagen ist oder nicht.

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

Für diesen speziellen Fall können Sie besser det sehen verwenden, wenn die Matrix nicht sigular ist. Wenn det(A) != 0, dann ist A invertierbar.