Otrzymałem ten komunikat o błędzie:
Error in if (condition) { : missing value where TRUE/FALSE needed
lub
Error in while (condition) { : missing value where TRUE/FALSE needed
Co to oznacza i jak temu zapobiec?
Otrzymałem ten komunikat o błędzie:
Error in if (condition) { : missing value where TRUE/FALSE needed
lub
Error in while (condition) { : missing value where TRUE/FALSE needed
Co to oznacza i jak temu zapobiec?
Odpowiedzi:
Ocena conditionzakończyła się plikiem NA. ifWarunkowego musi mieć albo TRUEczy FALSEwynik.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Może się to zdarzyć przypadkowo, ponieważ wyniki obliczeń:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Aby sprawdzić, czy brakuje obiektu, użyj is.na(x)zamiast x == NA.
Zobacz także powiązane błędy:
Błąd w if / while (warunek) {: argument ma długość zero
Błąd w if / while (warunek): argument nie jest interpretowany jako logiczny
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
NApo obu stronach. Jeśli zdefiniuję:x = NAa następnie zrobię,if (x == NA){ ... }to ten błąd zostanie wyrzucony w czasie wykonywania, gdy parser sprawdzi lewą stronę podwójnego równa się. Aby naprawić ten błąd, upewnij się, że żadna zmienna warunku nie używa NAis.na(your_variable).