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