R'de nasıl düzeltilir: rbind(deparse.level,…) hatası: bağımsız değişken sütun numaraları eşleşmiyor


R’de karşılaşabileceğiniz bir hata:

 Error in rbind(deparse.level, ...): 
  numbers of columns of arguments do not match 

Bu hata, aynı sayıda sütuna sahip olmayan iki veya daha fazla veri çerçevesini birbirine bağlamak için R’deki rbind() işlevini kullanmaya çalıştığınızda ortaya çıkar.

Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.

Hata nasıl yeniden oluşturulur?

R’de aşağıdaki iki veri çerçevesine sahip olduğumuzu varsayalım:

 #create first data frame
df1 <- data. frame (x=c(1, 4, 4, 5, 3),
                  y=c(4, 4, 2, 8, 10))

df1

  xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10

#create second data frame
df2 <- data. frame (x=c(2, 2, 2, 5, 7),
                  y=c(3, 6, 2, 0, 0),
                  z=c(2, 7, 7, 8, 15))

df2

  X Y Z
1 2 3 2
2 2 6 7
3 2 2 7
4 5 0 8
5 7 0 15

Şimdi bu iki veri çerçevesini tek bir veri çerçevesine bağlamak için rbind’i kullanmaya çalıştığımızı varsayalım:

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

Error in rbind(deparse.level, ...): 
  numbers of columns of arguments do not match

İki veri çerçevesi aynı sayıda sütuna sahip olmadığı için hata alıyoruz.

Hata nasıl düzeltilir?

Bu sorunu çözmenin iki yolu vardır:

Yöntem 1: Ortak sütunlarda rbind kullanın

Bu sorunu çözmenin bir yolu, veri çerçeveleri arasındaki ortak sütun adlarını bulmak için intersect() işlevini kullanmak ve ardından veri çerçevelerini yalnızca bu sütunlara bağlamaktır:

 #find common column names
common <- intersect(colnames(df1), colnames(df2))

#row-bind only on common column names
df3 <- rbind(df1[common], df2[common])

#view result
df3

   xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10
6 2 3
7 2 6
8 2 2
9 5 0
10 7 0

Yöntem 2: dplyr’den bind_rows() işlevini kullanın

Bu sorunu çözmenin başka bir yolu da dplyr paketindeki, eşleşmeyen sütun adları için NA değerlerini otomatik olarak dolduranbind_rows () işlevini kullanmaktır:

 library (dplyr)

#bind together the two data frames
df3 <- bind_rows(df1, df2)

#view result
df3

   X Y Z
1 1 4 NA
2 4 4 NA
3 4 2 NA
4 5 8 NA
5 3 10 NA
6 2 3 2
7 2 6 7
8 2 2 7
9 5 0 8
10 7 0 15

Bu veri çerçevesinde z sütunu bulunmadığından df1 değerleri için NA değerlerinin doldurulduğunu unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl çözüleceği açıklanmaktadır:

R’de nasıl düzeltilir: Adlar önceki adlarla eşleşmiyor
R’de nasıl düzeltilir: daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir
R’de nasıl düzeltilir: kontrastlar yalnızca 2 veya daha fazla seviyeye sahip faktörlere uygulanabilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir