Ich habe diese Fehlermeldung erhalten:
Error in if (condition) { : missing value where TRUE/FALSE needed
oder
Error in while (condition) { : missing value where TRUE/FALSE needed
Was bedeutet das und wie verhindere ich es?
Ich habe diese Fehlermeldung erhalten:
Error in if (condition) { : missing value where TRUE/FALSE needed
oder
Error in while (condition) { : missing value where TRUE/FALSE needed
Was bedeutet das und wie verhindere ich es?
Antworten:
Die Auswertung condition
ergab eine NA
. Die if
Bedingung muss entweder ein TRUE
oder ein FALSE
Ergebnis haben.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Dies kann versehentlich als Ergebnis von Berechnungen geschehen:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Um zu testen, ob ein Objekt fehlt, verwenden Sie is.na(x)
statt x == NA
.
Siehe auch die zugehörigen Fehler:
Fehler in if / while (Bedingung) {: Argument hat die Länge Null
Fehler in if / while (Bedingung): Argument kann nicht als logisch interpretiert werden
if (NULL) {}
## Error in if (NULL) { : argument is of length zero
if ("not logical") {}
## Error: argument is not interpretable as logical
if (c(TRUE, FALSE)) {}
## Warning message:
## the condition has length > 1 and only the first element will be used
NA
auf beiden Seiten kein tolerieren . Wenn ich definiere:x = NA
und dann ein mache,if (x == NA){ ... }
wird dieser Fehler zur Laufzeit ausgelöst, wenn der Parser die linke Seite der Doppelgleichheit untersucht. Um diesen Fehler zu beheben, stellen Sie sicher, dass nicht jede Variable in Ihrer Bedingung NA verwendetis.na(your_variable)
.