J'ai reçu ce message d'erreur:
Error in if (condition) { : missing value where TRUE/FALSE needed
ou
Error in while (condition) { : missing value where TRUE/FALSE needed
Qu'est-ce que cela signifie et comment éviter cela?
J'ai reçu ce message d'erreur:
Error in if (condition) { : missing value where TRUE/FALSE needed
ou
Error in while (condition) { : missing value where TRUE/FALSE needed
Qu'est-ce que cela signifie et comment éviter cela?
Réponses:
L'évaluation de a conditionabouti à un NA. Le ifconditionnel doit avoir un résultat TRUEou FALSE.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Cela peut arriver accidentellement en raison des résultats des calculs:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Pour tester si un objet manque, utilisez is.na(x)plutôt que x == NA.
Voir également les erreurs associées:
Erreur dans if / while (condition) {: l'argument est de longueur zéro
Erreur dans if / while (condition): l'argument n'est pas interprétable comme logique
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
NAde chaque côté. Si je définis:x = NAet ensuite faire un,if (x == NA){ ... }cette erreur sera générée au moment de l'exécution lorsque l'analyseur examinera le côté gauche du double égal. Pour remédier à cette erreur, assurez-vous que toutes les variables de votre conditionnel ne sont pas utilisées par NAis.na(your_variable).