C: birden çok sütuna dayalı veri çerçeveleri nasıl birleştirilir?


R’de birden çok sütuna dayalı iki veri çerçevesini birleştirmek için aşağıdaki temel sözdizimini kullanabilirsiniz:

 merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Veri bloklarını birden çok sütunda birleştirme

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

 #define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
                 team=c('A', 'B', 'B', 'B', 'C', 'C'),
                 dots=c(19, 22, 25, 29, 34, 39))

df2 = data. frame (playerID=c(1, 2, 3, 4),
                 tm=c('A', 'B', 'B', 'B'),
                 rebounds=c(7, 8, 8, 14))

#view first data frame
df1

  playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39

#view second data frame
df2 

  playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14

Her iki veri çerçevesinin de playerID sütununu paylaştığını ancak takım sütunlarının her veri çerçevesinde farklı adlara sahip olduğunu unutmayın:

  • İlk veri çerçevesi “ ekip ” sütununa sahiptir
  • İkinci veri çerçevesi ‘ tm ‘ sütununa sahiptir

Bu veri çerçevelerini playerID ve takım sütunlarına göre birleştirmek için by.x ve by.y argümanlarını kullanmamız gerekiyor.

Bu birleştirmeyi gerçekleştirmek için aşağıdaki kodu kullanabiliriz:

 #merge two data frames
merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm '))

#view merged data frame
merged

  playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14

Birleştirilmiş son veri çerçevesi, orijinal iki veri çerçevesine ait olan dört oyuncunun tamamına ait verileri içerir.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer yaygın veri çerçevesi işlevlerinin nasıl gerçekleştirileceği açıklanmaktadır:

R’de sola birleştirme nasıl yapılır
R’de DÜŞEYARA nasıl yapılır
R’de veri çerçevesine satırlar nasıl eklenir

Yorum ekle

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