Jak wykonać prawidłowe połączenie w r (z przykładami)


Istnieją dwa typowe sposoby wykonywania prawego złączenia w języku R:

Metoda 1: Użyj podstawy R

 merge(df1, df2, by=' column_to_join_on ', all. y = TRUE )

Metoda 2: użyj dplyr

 library (dplyr)

right_join(df1, df2, by=' column_to_join_on ')

Obie metody zwrócą wszystkie wiersze z df2 i wszystkie wiersze z pasującymi kluczami z df1 .

Warto również zauważyć, że obie metody dadzą ten sam wynik, ale metoda dplyr będzie działać szybciej w przypadku bardzo dużych zbiorów danych.

Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą z tych funkcji z następującymi ramkami danych:

 #define first data frame
df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))

df1

  team points
1 to 18
2 B 22
3 C 19
4 D 14
5 E 14
6 F 11
7 G 20
8:28 a.m.

#define second data frame
df2 = data. frame (team=c('A', 'B', 'C', 'D', 'L', 'M'),
                 assists=c(4, 9, 14, 13, 10, 8))

df2

  team assists
1 to 4
2 B 9
3 C 14
4 D 13
5 L 10
6 M 8

Przykład 1: Prawe łączenie przy użyciu podstawy R

Możemy użyć funkcji merge() w bazie R, aby wykonać łączenie prawostronne, używając kolumny „zespół” jako kolumny, do której należy się połączyć:

 #perform right join using base R
df3 <- merge(df1, df2, by=' team ', all. y = TRUE )

#view result
df3

  team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 L NA 10
6 M NA 8

Należy zauważyć, że wszystkie linie z df2 zostały uwzględnione w końcowej ramce danych, ale w końcowej ramce danych znalazły się tylko linie z df1 , które miały pasującą nazwę zespołu.

Przykład 2: Prawe łączenie przy użyciu dplyr

Możemy użyć funkcji Right_join() z pakietu dplyr , aby wykonać łączenie prawostronne, używając kolumny „team” jako kolumny, do której należy dołączyć:

 library (dplyr)

#perform right join using dplyr 
df3 <- right_join(df1, df2, by=' team ')

#view result
df3

  team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 L NA 10
6 M NA 8

Zauważ, że odpowiada to wynikowi, który uzyskaliśmy za pomocą funkcji merge() w bazie R.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:

Jak wykonać lewe złączenie w R
Jak dodać kolumnę do ramki danych w R
Jak usunąć kolumny z ramki danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *