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 corriger l’erreur dans R : les noms ne correspondent pas aux noms précédents



Une erreur courante que vous pouvez rencontrer dans R est :

Error in match.names(clabs, names(xi)) : 
  names do not match previous names

Cette erreur se produit lorsque vous tentez d’utiliser la fonction rbind() pour lier deux blocs de données, mais que les noms de colonnes des deux blocs de données ne correspondent pas.

Ce didacticiel partage les étapes exactes que vous pouvez utiliser pour résoudre cette erreur.

Exemple : Comment réparer « les noms ne correspondent pas aux noms précédents »

Supposons que nous ayons les deux trames de données suivantes dans R :

#create and view first data frame
df1 <- data.frame(var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df1

  var1 var2
1    1    7
2    3    7
3    3    8
4    4    3
5    5    2

#create and view first second frame 
df2 <- data.frame(var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

df2

  var3 var4
1    3    1
2    3    1
3    6    2
4    6    8
5    8    9

Si nous essayons d’utiliser la fonction rbind() pour lier ces deux trames de données, nous obtiendrons une erreur :

#attempt to row bind the two data frames
rbind(df1, df2)

Error in match.names(clabs, names(xi)) : 
  names do not match previous names

Nous obtenons cette erreur car les noms de colonnes des deux blocs de données ne correspondent pas.

Le premier bloc de données comporte les noms de colonnes suivants :

  • var1
  • var2

Et le deuxième bloc de données contient les noms de colonnes suivants :

  • var3
  • var4

Nous pouvons même utiliser le code suivant pour vérifier si les noms de colonnes sont identiques entre les deux trames de données :

#check if column names are identical between two data frames
identical(names(df1), names(df2))

[1] FALSE

Nous pouvons voir que les noms de colonnes ne sont pas identiques.

Pour corriger cette erreur, nous pouvons renommer manuellement les noms de colonnes du deuxième bloc de données pour qu’ils correspondent aux noms de colonnes du premier bloc de données :

#define two data frames
df1 <- data.frame(var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df2 <- data.frame(var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- c('var1', 'var2')

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1     1    7
2     3    7
3     3    8
4     4    3
5     5    2
6     3    1
7     3    1
8     6    2
9     6    8
10    8    9

Nous pouvons voir que rbind() a réussi à lier les deux trames de données puisque les noms de colonnes correspondaient.

Une autre façon de corriger cette erreur serait d’utiliser la fonction names() pour attribuer automatiquement les noms de colonnes du premier bloc de données au deuxième bloc de données :

#define two data frames
df1 <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2))

df2 <- data.frame(var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- names(df1)

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1     1    7
2     3    7
3     3    8
4     4    3
5     5    2
6     3    1
7     3    1
8     6    2
9     6    8
10    8    9

Encore une fois, rbind() est capable de lier avec succès les deux trames de données car elles partagent les mêmes noms de colonnes.

Ressources additionnelles

Comment utiliser rbind dans R (avec exemples)
Comment utiliser cbind dans R (avec exemples)
Comment ajouter des lignes à un bloc de données dans R

Ajouter un commentaire

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