Cómo corregir: valor faltante donde se necesita verdadero/falso en R

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

Publicación traducida automáticamente

Artículo escrito por skrg141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *