Recibí este mensaje de error:
Error in if (condition) { : missing value where TRUE/FALSE needed
o
Error in while (condition) { : missing value where TRUE/FALSE needed
¿Qué significa y cómo lo evito?
Recibí este mensaje de error:
Error in if (condition) { : missing value where TRUE/FALSE needed
o
Error in while (condition) { : missing value where TRUE/FALSE needed
¿Qué significa y cómo lo evito?
Respuestas:
La evaluación de condition
resultó en un NA
. El if
condicional debe tener un TRUE
o un FALSE
resultado.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Esto puede suceder accidentalmente como resultado de los cálculos:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Para probar si falta un objeto, use en is.na(x)
lugar de x == NA
.
Vea también los errores relacionados:
Error en if / while (condición) {: el argumento es de longitud cero
Error en if / while (condición): el argumento no es interpretable como lógico
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
a ningún lado. Si defino:x = NA
y luego hago unif (x == NA){ ... }
error, este error se generará en tiempo de ejecución cuando el analizador examine el lado izquierdo del doble igual. Para remediar este error, asegúrese de que cada variable en su condicional no esté usando NAis.na(your_variable)
.