Cara memperbaiki error di r: nama tidak sesuai dengan nama sebelumnya


Kesalahan umum yang mungkin Anda temui di R adalah:

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

Kesalahan ini terjadi ketika Anda mencoba menggunakan fungsi rbind() untuk mengikat dua bingkai data, namun nama kolom dari dua bingkai data tidak cocok.

Tutorial ini membagikan langkah-langkah tepat yang dapat Anda gunakan untuk mengatasi kesalahan ini.

Contoh: Cara mengatasi “nama tidak sesuai dengan nama sebelumnya”

Misalkan kita memiliki dua frame data berikut di 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

Jika kita mencoba menggunakan fungsi rbind() untuk mengikat kedua bingkai data ini, kita akan mendapatkan kesalahan:

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

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

Kami mendapatkan kesalahan ini karena nama kolom dari dua bingkai data tidak cocok.

Bingkai data pertama memiliki nama kolom berikut:

  • var1
  • var2

Dan bingkai data kedua berisi nama kolom berikut:

  • var3
  • var4

Kita bahkan dapat menggunakan kode berikut untuk memeriksa apakah nama kolom antara dua bingkai data sama:

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

[1] FALSE

Kita dapat melihat bahwa nama kolomnya tidak sama.

Untuk memperbaiki kesalahan ini, kita bisa secara manual mengganti nama kolom di bingkai data kedua agar sesuai dengan nama kolom di bingkai data pertama:

 #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

Kita dapat melihat bahwa rbind() berhasil menghubungkan dua bingkai data karena nama kolomnya cocok.

Cara lain untuk memperbaiki kesalahan ini adalah dengan menggunakan fungsi nama() untuk secara otomatis menetapkan nama kolom dari bingkai data pertama ke bingkai data kedua:

 #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

Sekali lagi, rbind() berhasil mengikat dua bingkai data karena keduanya memiliki nama kolom yang sama.

Sumber daya tambahan

Cara menggunakan rbind di R (dengan contoh)
Cara menggunakan cbind di R (dengan contoh)
Bagaimana cara menambahkan baris ke bingkai data di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *