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