En este artículo, veremos cómo corregir los valores faltantes donde se necesita verdadero/falso en el lenguaje de programación R.
¿Por qué ocurre este error?
Cuando comparemos el valor con NA (No disponible) poniendo en una «sentencia if» o «sentencia while», entonces se produce el error «valor faltante donde se necesita verdadero/falso» es que está pasando un valor no válido a «sentencia if». ” o “instrucción while”.
Ejemplo 1: Fijación con variables
Cómo reproducir el error
Aquí obtendremos el error porque usamos la sintaxis num == NA. No podemos comparar el valor con el número NA, este tipo de declaración (si la condición) siempre devuelve un valor VERDADERO o FALSO.
R
num <- "2" if (num == NA) { print("Number is :", NA) }else{ print(num) }
Producción:
Error en if (num == NA) {: valor faltante donde se necesitaba VERDADERO/FALSO
Cómo arreglar el error
Necesitamos usar is.na(Value) porque siempre devuelve VERDADERO o FALSO.
R
num <- "2" if (is.na(num)) { print("Number is : NA") }else{ print(num) }
Producción:
[1] "2"
Ejemplo 2: Fijación con vector
Aquí obtendremos el error porque usamos la sintaxis vec[l] != NA. No podemos comparar el valor con el número NA, este tipo de declaración (si la condición) siempre devuelve un valor VERDADERO o FALSO.
R
vec = c(1, 0, NA) for (l in 1:length(vec)) { if (vec[l] != NA) print(vec[l]); }
Producción:
Error en if (num == NA) {: valor faltante donde se necesitaba VERDADERO/FALSO
Tienes que usar la función is.na para que tu sentencia if funcione.
R
vec = c(1, 0, NA) for (l in 1:length(vec)) { if (!is.na(vec[l])) print(vec[l]) }
Producción:
[1] 1 [1] 0