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 condition
zakończyła się plikiem NA
. if
Warunkowego musi mieć albo TRUE
czy FALSE
wynik.
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
NA
po obu stronach. Jeśli zdefiniuję:x = NA
a 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)
.