Como fazer uma junção à esquerda em r (com exemplos)


Você pode usar a função merge() para realizar uma junção à esquerda na base R:

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

Você também pode usar a função left_join() do pacote dplyr para realizar uma junção à esquerda:

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

Nota: Se você estiver trabalhando com conjuntos de dados extremamente grandes, a função left_join() tenderá a ser mais rápida que a função merge() .

Os exemplos a seguir mostram como usar cada uma dessas funções na prática com os seguintes quadros de dados:

 #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

Exemplo 1: junção à esquerda usando Base R

Podemos usar a função merge() na base R para realizar uma junção à esquerda, usando a coluna ‘team’ como a coluna à qual ingressar:

 #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

Exemplo 2: junção à esquerda usando dplyr

Podemos usar a função left_join() do pacote dplyr para realizar uma junção à esquerda, usando a coluna ‘team’ como a coluna à qual ingressar:

 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

Uma diferença que você notará entre essas duas funções é que a função merge() classifica automaticamente as linhas em ordem alfabética com base na coluna usada para realizar a junção.

Por outro lado, a função left_join() preserva a ordem original das linhas no primeiro quadro de dados.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em R:

Como fazer uma junção interna em R
Como realizar correspondência difusa em R
Como adicionar coluna ao quadro de dados em R
Como remover colunas do quadro de dados em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *