Comment réparer dans R : valeur manquante là où vrai/faux est nécessaire



Une erreur que vous pouvez rencontrer dans R est :

Error in if (x[i] == NA) { : missing value where TRUE/FALSE needed

Cette erreur se produit lorsque vous comparez une valeur à NA dans une instruction if dans R en utilisant la syntaxe x == NA .

Une instruction if attend une valeur VRAI ou FAUX, vous devez donc utiliser is.na(x) à la place car cette fonction renvoie toujours VRAI ou FAUX.

Comment reproduire l’erreur

Supposons que nous essayions de parcourir une liste de valeurs dans un vecteur dans R et d’imprimer le mot « manquant » chaque fois qu’il y a une valeur NA dans le vecteur :

#define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for(i in 1:length(x)) {
 
 if (x[i] == NA) {
    print('Missing')
  }
}

Error in if (x[i] == NA) { : missing value where TRUE/FALSE needed

Nous recevons une erreur car nous avons utilisé la syntaxe x[i] == NA .

Comment réparer l’erreur

Nous devons changer la syntaxe en is.na(x) comme suit :

#define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for(i in 1:length(x)) {
 
 if (is.na(x[i])) {
    print('Missing')
  }
}

[1] "Missing"
[1] "Missing"

Notez que nous ne recevons pas d’erreur et que nous pouvons imprimer le mot « manquant » chaque fois que nous rencontrons une valeur NA dans le vecteur.

Ressources additionnelles

Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes dans R :

Comment réparer : les NA introduites par la coercition
Comment réparer : nombre incorrect d’indices sur la matrice
Comment réparer : le nombre d’éléments à remplacer n’est pas un multiple de la longueur de remplacement

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *