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 condition
abouti à un NA
. Le if
conditionnel doit avoir un résultat TRUE
ou 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
NA
de chaque côté. Si je définis:x = NA
et 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)
.