Comment réparer dans R : l’argument est de longueur nulle
Un message d’erreur que vous pouvez rencontrer lors de l’utilisation de R est :
Error in if (x < 10) { : argument is of length zero
Cette erreur se produit généralement lorsque vous tentez d’effectuer une comparaison logique dans une instruction if dans R, mais que la variable que vous utilisez dans la comparaison est de longueur zéro.
Deux exemples de variables de longueur nulle sont numeric() ou Character(0) .
L’exemple suivant montre comment résoudre cette erreur dans la pratique.
Comment reproduire l’erreur
Supposons que nous créions la variable numérique suivante dans R avec une longueur nulle :
#create numeric variable with length of zero
x <- numeric()
Supposons maintenant que nous essayions d’utiliser cette variable dans une instruction if :
#if x is less than 10, print x to console
if(x < 10) {
x
}
Error in if (x < 10) { : argument is of length zero
Nous recevons une erreur car la variable que nous avons définie a une longueur nulle.
Si nous créions simplement une variable numérique avec une valeur réelle, nous ne recevrions jamais cette erreur lors de l’utilisation de l’instruction if :
#create numeric variable
y <- 5
#if y is less than 10, print y to console
if(y < 10) {
y
}
[1] 5
Comment éviter l’erreur
Pour éviter l’erreur de longueur d’argument zéro , nous devons inclure une fonction isTRUE , qui utilise la logique suivante :
is.logical(x) && length(x) == 1 && !is.na(x) && x
Si nous utilisons cette fonction dans l’instruction if, nous ne recevrons pas d’erreur lors de la comparaison de notre variable à une valeur :
if(isTRUE(x) && x < 10) {
x
}
Au lieu de recevoir une erreur, nous ne recevons simplement aucune sortie car la fonction isTRUE(x) est évaluée à FALSE , ce qui signifie que la valeur de x n’est jamais imprimée.
Ressources additionnelles
Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes dans R :
Comment réparer dans R : les arguments impliquent un nombre de lignes différent
Comment réparer dans R : erreur dans la sélection des arguments inutilisés
Comment réparer dans R : le remplacement a une longueur nulle