Como juntar quadros de dados em múltiplas colunas usando dplyr


Você pode usar a seguinte sintaxe básica para unir quadros de dados em R com base em múltiplas colunas usando dplyr:

 library (dplyr)

left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))

Esta sintaxe específica executará uma junção à esquerda onde as seguintes condições forem verdadeiras:

  • O valor na coluna x1 de df1 corresponde ao valor na coluna x2 de df2.
  • O valor da coluna y1 do df1 corresponde ao valor da coluna y2 do df2.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: junte várias colunas usando dplyr

Suponha que temos os dois quadros de dados a seguir em R:

 #define first data frame
df1 = data. frame (team=c('A', 'A', 'B', 'B'),
                 pos=c('G', 'F', 'F', 'G'),
                 dots=c(18, 22, 19, 14))

df1

  team pos points
1 AG 18
2 AF 22
3 BF 19
4 BG 14

#define second data frame
df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'),
                 position=c('G', 'F', 'F', 'G', 'F'),
                 assists=c(4, 9, 8, 6, 5))

df2

  team_name position assists
1 GA 4
2 AF 9
3 BF 8
4 CG 6
5 CF 5

Podemos usar a seguinte sintaxe em dplyr para realizar uma junção à esquerda com base em duas colunas:

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position '))

#view result
df3

  team pos points assists
1 AG 18 4
2 AF 22 9
3 BF 19 8
4 BG 14 NA

O quadro de dados resultante contém todas as linhas do df1 e apenas as linhas do df2 onde os valores da equipe e da posição correspondem.

Observe também que, se ambos os quadros de dados compartilharem os mesmos nomes de coluna, você poderá simplesmente usar a seguinte sintaxe para unir várias colunas:

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team ', ' position '))

Recursos adicionais

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

Como fazer uma junção à esquerda no R
Como fazer uma junção correta em R
Como fazer uma junção interna em R
Como fazer uma junção externa em R

Add a Comment

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