sgn - Error en if/while(condición){: Valor faltante donde TRUE/FALSE necesitaba
error in mutate_impl.data dots evaluation error missing value where true false needed (2)
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?
La evaluación de la condition
dio como resultado una NA
. El condicional if
debe tener un resultado TRUE
o FALSE
.
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 is.na(x)
lugar de x == NA
.
Ver 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
Me encontré con esto cuando revisé una cadena vacía o nula
if (x == NULL || x == '''') {
lo cambié a
if (is.null(x) || x == '''') {