Comment réparer dans R : nombre incorrect d’indices sur la matrice



Une erreur que vous pouvez rencontrer dans R est :

Error in x[i, ] <- 0 : incorrect number of subscripts on matrix

Cette erreur se produit lorsque vous tentez d’attribuer une valeur à une position dans un vecteur, mais que vous incluez accidentellement une virgule comme si vous attribuiez une valeur à une position de ligne et de colonne dans une matrice.

Ce didacticiel explique exactement comment corriger cette erreur.

Exemple 1 : Correction d’une erreur pour une valeur unique

Supposons que nous ayons le vecteur suivant dans R avec 5 valeurs :

#define vector
x <- c(4, 6, 7, 7, 15)

Supposons maintenant que nous essayions d’attribuer la valeur « 22 » au troisième élément du vecteur :

#attempt to assign the value '22' to element in third position
x[3, ] <- 22

Error in x[3, ] <- 22 : incorrect number of subscripts on matrix

Nous recevons une erreur car nous avons inclus une virgule lors de la tentative d’attribution de la nouvelle valeur.

Au lieu de cela, nous devons simplement supprimer la virgule :

assign the value '22' to element in third position
x[3] <- 22

#display updated vector
x

[1]  4  6 22  7 15

Exemple 2 : corriger une erreur dans une boucle for

Cette erreur peut également se produire lorsque l’on tente de remplacer plusieurs valeurs dans un vecteur à l’aide d’une boucle ‘for’.

Par exemple, le code suivant tente de remplacer chaque valeur d’un vecteur par un zéro :

#define vector
x <- c(4, 6, 7, 7, 15)

#attempt to replace every value in vector with zero
for(i in 1:length(x)) {
    x[i, ]=0
  }

Error in x[i, ] = 0 : incorrect number of subscripts on matrix

Nous recevons une erreur car nous avons inclus une virgule lors de la tentative d’attribution des zéros.

Au lieu de cela, nous devons simplement supprimer la virgule :

#define vector
x <- c(4, 6, 7, 7, 15)

#replace every value in vector with zero
for(i in 1:length(x)) {
    x[i]=0
  }

#view updated vector
x

[1] 0 0 0 0 0

Une fois la virgule supprimée, le code s’exécute sans erreur.

Ressources additionnelles

Comment réparer dans R : les NA introduits par la coercition
Comment réparer dans R : indice hors limites
Comment corriger l’erreur dans R : nombre de dimensions incorrect

Ajouter un commentaire

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