El operador de doble igual no puede tolerar un NAa ningún lado. Si defino: x = NAy luego hago un if (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 NA is.na(your_variable).
Eric Leschinski
Respuestas:
203
La evaluación de conditionresultó en un NA. El ifcondicional debe tener un TRUEo un FALSEresultado.
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.
if(NULL){}## Error in if (NULL) { : argument is of length zeroif("not logical"){}## Error: argument is not interpretable as logicalif(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)
.Respuestas:
La evaluación de
condition
resultó en unNA
. Elif
condicional debe tener unTRUE
o unFALSE
resultado.Esto puede suceder accidentalmente como resultado de los cálculos:
Para probar si falta un objeto, use en
is.na(x)
lugar dex == 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
fuente
Me encontré con esto al verificar una cadena nula o vacía
lo cambió a
fuente
!(length(x) == 1L && nzchar(x))