R: como mesclar quadros de dados com base em múltiplas colunas


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

 merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))

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

Exemplo: mesclar blocos de dados em várias colunas

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

 #define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
                 team=c('A', 'B', 'B', 'B', 'C', 'C'),
                 dots=c(19, 22, 25, 29, 34, 39))

df2 = data. frame (playerID=c(1, 2, 3, 4),
                 tm=c('A', 'B', 'B', 'B'),
                 rebounds=c(7, 8, 8, 14))

#view first data frame
df1

  playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39

#view second data frame
df2 

  playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14

Observe que ambos os quadros de dados compartilham a coluna playerID , mas as colunas da equipe têm nomes diferentes em cada quadro de dados:

  • O primeiro quadro de dados possui a coluna “ equipe
  • O segundo quadro de dados possui a coluna ‘ tm

Para mesclar esses quadros de dados com base nas colunas playerID e team, precisamos usar os argumentos by.x e by.y.

Podemos usar o seguinte código para realizar essa mesclagem:

 #merge two data frames
merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm '))

#view merged data frame
merged

  playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14

O quadro de dados mesclado final contém dados de todos os quatro jogadores que pertencem aos dois quadros de dados originais.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras funções comuns de quadro de dados em R:

Como fazer uma junção à esquerda no R
Como fazer um VLOOKUP em R
Como adicionar linhas ao quadro de dados em R

Add a Comment

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