R'de çoklu veri çerçeveleri nasıl birleştirilir (örneklerle)


R’de birden fazla veri çerçevesini birleştirmek için iki yöntemden birini kullanabilirsiniz:

Yöntem 1: Base R’yi kullanın

 #put all data frames into list
df_list <- list(df1, df2, df3)

#merge all data frames into list
Reduce(function(x, y) merge(x, y, all= TRUE ), df_list)

Yöntem 2: Tidyverse’yi kullanın

 library (tidyverse)

#put all data frames into list
df_list <- list(df1, df2, df3)

#merge all data frames into list
df_list %>% reduce(full_join, by=' variable_name ')

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Yöntem 1: Base R’yi Kullanarak Birden Çok Veri Çerçevesini Birleştirme

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

 #define data frames
df1 <- data. frame (id=c(1, 2, 3, 4, 5),
                  revenue=c(34, 36, 40, 49, 43))

df2 <- data. frame (id=c(1, 2, 5, 6, 7),
                  expenses=c(22, 26, 31, 40, 20))

df3 <- data. frame (id=c(1, 2, 4, 5, 7),
                  profit=c(12, 10, 14, 12, 9))

R taban işlevlerini kullanarak tüm veri çerçevelerini birleştirmek için aşağıdaki sözdizimini kullanabiliriz:

 #put all data frames into list
df_list <- list(df1, df2, df3)      

#merge all data frames together
Reduce(function(x, y) merge(x, y, all= TRUE ), df_list)  

  id revenue expenses profit
1 1 34 22 12
2 2 36 26 10
3 3 40 NA NA
4 4 49 NA 14
5 5 43 31 12
6 6 NA 40 NA
7 7 NA 20 9

Her orijinal veri bloğundaki “id” değerlerinin her birinin, son veri bloğuna dahil edildiğini unutmayın.

Yöntem 2: Tidyverse Kullanarak Birden Çok Veri Çerçevesini Birleştirme

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

 #define data frames
df1 <- data. frame (id=c(1, 2, 3, 4, 5),
                  revenue=c(34, 36, 40, 49, 43))

df2 <- data. frame (id=c(1, 2, 5, 6, 7),
                  expenses=c(22, 26, 31, 40, 20))

df3 <- data. frame (id=c(1, 2, 4, 5, 7),
                  profit=c(12, 10, 14, 12, 9))

R’de veri bilimi için tasarlanmış bir paket koleksiyonu olan Tidyverse’deki işlevleri kullanarak tüm veri çerçevelerini birleştirmek için aşağıdaki sözdizimini kullanabiliriz:

 library (tidyverse)

#put all data frames into list
df_list <- list(df1, df2, df3)      

#merge all data frames together
df_list %>% reduce(full_join, by=' id ')

  id revenue expenses profit
1 1 34 22 12
2 2 36 26 10
3 3 40 NA NA
4 4 49 NA 14
5 5 43 31 12
6 6 NA 40 NA
7 7 NA 20 9

Nihai veri çerçevesinin, ilk yöntemi kullanarak ürettiğimiz veri çerçevesiyle eşleştiğini unutmayın.

Not : Çok büyük veri çerçeveleriyle çalışıyorsanız Tidyverse yaklaşımı fark edilir derecede daha hızlı olacaktır.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak işlevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de birden çok sütuna dayalı veri çerçeveleri nasıl birleştirilir
R’de veri çerçevesi sütunları nasıl istiflenir
R’de anti_join nasıl kullanılır?

Yorum ekle

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