Een linkse join uitvoeren in r (met voorbeelden)


U kunt de functie merge() gebruiken om een left join uit te voeren in basis R:

 #left join using base R
merge(df1,df2, all. x = TRUE )

U kunt ook de functie left_join() uit het dplyr- pakket gebruiken om een left join uit te voeren:

 #left join using dplyr
dplyr::left_join(df2, df1)

Opmerking: als u met extreem grote gegevenssets werkt, zal de functie left_join() sneller zijn dan de functie merge() .

De volgende voorbeelden laten zien hoe u elk van deze functies in de praktijk kunt gebruiken met de volgende dataframes:

 #define first data frame
df1 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '),
                  dots=c(99, 93, 96, 104))

df1

   team points
1 Mavs 99
2 Hawks 93
3 Spurs 96
4 Nets 104

#define second data frame
df2 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '),
                  rebounds=c(25, 32, 38, 30),
                  assists=c(19, 18, 22, 25))

df2

   team rebound assists
1 Mavs 25 19
2 Hawks 32 18
3 Spurs 38 22
4 Nets 30 25

Voorbeeld 1: Linkse verbinding met Basis R

We kunnen de functie merge() in basis R gebruiken om een left join uit te voeren, waarbij we de kolom ‚team‘ gebruiken als de kolom waaraan we moeten deelnemen:

 #perform left join using base R
merge(df1, df2, by=' team ', all. x = TRUE )

   team points rebound assists
1 Hawks 93 32 18
2 Mavs 99 25 19
3 Nets 104 30 25
4 Spurs 96 38 22

Voorbeeld 2: Linkse join met dplyr

We kunnen de functie left_join() uit het dplyr-pakket gebruiken om een left join uit te voeren, waarbij de kolom ‚team‘ wordt gebruikt als de kolom waaraan moet worden deelgenomen:

 library (dplyr)

#perform left join using dplyr 
left_join(df1, df2, by=' team ')

   team points rebound assists
1 Mavs 99 25 19
2 Hawks 93 32 18
3 Spurs 96 38 22
4 Nets 104 30 25

Een verschil dat u zult opmerken tussen deze twee functies is dat de functie merge() de rijen automatisch alfabetisch sorteert op basis van de kolom die u hebt gebruikt om de join uit te voeren.

Omgekeerd behoudt de functie left_join() de oorspronkelijke volgorde van de rijen in het eerste dataframe.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:

Hoe maak je een inner join in R
Fuzzy matching uitvoeren in R
Hoe u een kolom aan een dataframe toevoegt in R
Kolommen verwijderen uit een dataframe in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert