web-dev-qa-db-fra.com

R - "valeur manquante là où VRAI / FAUX était nécessaire"

J'essaie d'exécuter le code suivant dans R

comments = c("no","yes",NA)
for (l in 1:length(comments)) {
    if (comments[l] != NA) print(comments[l]);
}

Mais je reçois une erreur

Error in if (comments[l] != NA) print(comments[l]) : missing value where TRUE/FALSE needed

Que se passe t-il ici?

8
user3582590

vérifiez la commande: NA!=NA: vous obtiendrez le résultat NA, d'où le message d'erreur.

Vous devez utiliser la fonction is.na pour que votre ifinstruction fonctionne (en général, il est toujours préférable d'utiliser cette fonction pour vérifier les valeurs de NA):

comments = c("no","yes",NA)
for (l in 1:length(comments)) {
    if (!is.na(comments[l])) print(comments[l])
}
[1] "no"
[1] "yes"
18
Cath

Pouvez-vous changer la condition if en ceci:

if (!is.na(comments[l])) print(comments[l]);

Vous ne pouvez vérifier les valeurs NA qu'avec is.na ().

4
Nikos