Come correggere l'errore in r: i nomi non corrispondono ai nomi precedenti


Un errore comune che potresti riscontrare in R è:

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

Questo errore si verifica quando si tenta di utilizzare la funzione rbind() per associare due frame di dati, ma i nomi delle colonne dei due frame di dati non corrispondono.

Questo tutorial condivide i passaggi esatti che puoi utilizzare per risolvere questo errore.

Esempio: come risolvere il problema “i nomi non corrispondono ai nomi precedenti”

Supponiamo di avere i seguenti due frame di dati in 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

Se proviamo a utilizzare la funzione rbind() per associare questi due frame di dati, otterremo un errore:

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

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

Otteniamo questo errore perché i nomi delle colonne dei due frame di dati non corrispondono.

Il primo frame di dati ha i seguenti nomi di colonna:

  • var1
  • var2

E il secondo frame di dati contiene i seguenti nomi di colonna:

  • var3
  • var4

Possiamo anche usare il seguente codice per verificare se i nomi delle colonne sono gli stessi tra i due frame di dati:

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

[1] FALSE

Possiamo vedere che i nomi delle colonne non sono gli stessi.

Per correggere questo errore, possiamo rinominare manualmente i nomi delle colonne nel secondo frame di dati in modo che corrispondano ai nomi delle colonne nel primo frame di dati:

 #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

Possiamo vedere che rbind() ha collegato con successo i due frame di dati poiché i nomi delle colonne corrispondevano.

Un altro modo per correggere questo errore sarebbe utilizzare la funzionenames () per assegnare automaticamente i nomi delle colonne dal primo frame di dati al secondo frame di dati:

 #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

Ancora una volta, rbind() è in grado di associare con successo i due frame di dati poiché condividono gli stessi nomi di colonna.

Risorse addizionali

Come utilizzare rbind in R (con esempi)
Come utilizzare cbind in R (con esempi)
Come aggiungere righe a un frame di dati in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *