Cara menggabungkan beberapa frame data di r (dengan contoh)


Anda dapat menggunakan salah satu dari dua metode untuk menggabungkan beberapa bingkai data di R:

Metode 1: Gunakan Basis R

 #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)

Metode 2: Gunakan Tidyverse

 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 ')

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.

Metode 1: Gabungkan Beberapa Bingkai Data Menggunakan Basis R

Misalkan kita memiliki frame data berikut di R:

 #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))

Kita dapat menggunakan sintaks berikut untuk menggabungkan semua frame data menggunakan fungsi dasar R:

 #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

Perhatikan bahwa setiap nilai “id” dari setiap blok data asli disertakan dalam blok data akhir.

Metode 2: Gabungkan Beberapa Bingkai Data Menggunakan Tidyverse

Misalkan kita memiliki frame data berikut di R:

 #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))

Kita dapat menggunakan sintaks berikut untuk menggabungkan semua bingkai data menggunakan fungsi dari Tidyverse – kumpulan paket yang dirancang untuk ilmu data di R:

 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

Perhatikan bahwa bingkai data akhir cocok dengan bingkai data yang kami hasilkan menggunakan metode pertama.

Catatan : Pendekatan Tidyverse akan terasa lebih cepat jika Anda bekerja dengan bingkai data yang sangat besar.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di R:

Cara menggabungkan bingkai data berdasarkan beberapa kolom di R
Cara menumpuk kolom bingkai data di R
Cara menggunakan anti_join di R

Tambahkan komentar

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