Ho ricevuto questo messaggio di errore:
Error in if (condition) { : missing value where TRUE/FALSE needed
o
Error in while (condition) { : missing value where TRUE/FALSE needed
Cosa significa e come posso impedirlo?
Ho ricevuto questo messaggio di errore:
Error in if (condition) { : missing value where TRUE/FALSE needed
o
Error in while (condition) { : missing value where TRUE/FALSE needed
Cosa significa e come posso impedirlo?
Risposte:
La valutazione di ha condition
portato a un NA
. Il if
condizionale deve avere un TRUE
o un FALSE
risultato.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Questo può accadere accidentalmente come i risultati dei calcoli:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Per verificare se manca un oggetto, utilizzare is.na(x)
anziché x == NA
.
Vedi anche gli errori correlati:
Errore in if / while (condizione) {: argomento di lunghezza zero
Errore in if / while (condizione): l'argomento non è interpretabile come logico
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
alcun lato. Se definisco:x = NA
e quindi faccio unif (x == NA){ ... }
errore, questo errore verrà lanciato in fase di esecuzione quando il parser esamina il lato sinistro del doppio uguale. Per correggere questo errore, assicurati che ogni variabile nel tuo condizionale non utilizzi NAis.na(your_variable)
.