Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment réparer : la longueur d’un objet plus longue n’est pas un multiple de la longueur d’un objet plus courte



Un message d’avertissement courant que vous pouvez rencontrer dans R est :

Warning message:
In a + b : longer object length is not a multiple of shorter object length

Ce message d’avertissement s’affiche lorsque vous tentez d’effectuer une opération sur deux vecteurs ou plus qui n’ont pas la même longueur.

Ce didacticiel partage les étapes exactes que vous pouvez utiliser pour résoudre ce message d’avertissement.

Comment reproduire le message d’avertissement

Supposons que nous ajoutions les valeurs des deux vecteurs suivants dans R :

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9, 10)

#add the two vectors
a + b

[1]  7  9 11 13 15

Le vecteur résultant montre la somme des valeurs correspondantes dans chaque vecteur.

Nous n’avons reçu aucun message d’avertissement car les deux vecteurs sont de même longueur.

Cependant, supposons que le deuxième vecteur ait une valeur de moins que la première :

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9)

#add the two vectors
a + b

[1]  7  9 11 13 11

Warning message:
In a + b : longer object length is not a multiple of shorter object length

Étant donné que les deux vecteurs ont des longueurs différentes, nous obtenons que la longueur de l’objet la plus longue n’est pas un multiple du message d’avertissement de longueur de l’objet plus courte .

Il est important de noter que R force toujours le calcul à fonctionner en ajoutant la dernière valeur du premier vecteur (5) avec la première valeur du deuxième vecteur (6) pour obtenir la valeur finale de 11 .

Si nous ne connaissons pas la longueur de chaque vecteur, nous pouvons utiliser la fonction length() pour la découvrir :

#display length of vector a
length(a)

[1] 5

#display length of vector b
length(b)

[1] 4

On voit que le premier vecteur a 5 valeurs tandis que le deuxième vecteur n’a que 4 valeurs. C’est pourquoi nous recevons un message d’avertissement.

Comment corriger le message d’avertissement

Pour corriger ce message d’avertissement, nous devons simplement nous assurer que les deux vecteurs ont la même longueur.

Par exemple, si nous savons que le vecteur b a une valeur de moins que le vecteur a, alors nous pouvons simplement ajouter un zéro à la fin du vecteur b :

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9)

#add zero to the end of vector b
b <- c(b, 0)

#add the two vectors
a + b

[1]  7  9 11 13  5

Dans la plupart des cas, nous ne connaissons pas réellement la différence de longueur entre les deux vecteurs, nous pouvons donc utiliser la boucle for suivante pour ajouter le nombre correct de zéros à la fin du vecteur le plus court :

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7)

#add zeros to the end of vector b
for(i in ((length(b)+1):length(a)))
  +{b = c(b, 0)}

#add the two vectors
a + b

[1]  7  9 11 13  5

Le message d’avertissement disparaît car nous avons ajouté suffisamment de zéros à la fin du vecteur b pour garantir que les deux vecteurs avaient la même longueur.

Ressources additionnelles

Les didacticiels suivants expliquent comment résoudre d’autres erreurs courantes dans R :

Comment réparer dans R : les noms ne correspondent pas aux noms précédents
Comment réparer dans R : les NA introduits par la coercition
Comment réparer dans R : indice hors limites
Comment réparer dans R : les contrastes ne peuvent être appliqués qu’à des facteurs avec 2 niveaux ou plus

Ajouter un commentaire

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