R: como mesclar quadros de dados por nomes de colunas


Você pode usar os seguintes métodos para mesclar quadros de dados por nomes de colunas em R:

Método 1: mesclar com base em um nome de coluna correspondente

 merge(df1, df2, by=' var1 ')

Método 2: mesclar com base no nome da coluna sem correspondência

 merge(df1, df2, by. x = ' var1 ', by. y = ' variable1 ')

Método 3: mesclar com base em vários nomes de colunas correspondentes

 merge(df1, df2, by=c(' var1 ', ' var2 '))

Método 4: mesclar com base em vários nomes de colunas sem correspondência

 merge(df1, df2, by. x =c(' var1 ', ' var2 '), by. y =c(' variable1 ', ' variable2 '))

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: Mesclar com base no nome da coluna correspondente

O código a seguir mostra como mesclar dois quadros de dados em R com base em um nome de coluna correspondente:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with matching name
merge(df1, df2, by=' team ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

O resultado é um quadro de dados que corresponde às linhas de cada quadro de dados usando a coluna da equipe .

Exemplo 2: Mesclar com base no nome da coluna sem correspondência

O código a seguir mostra como mesclar dois quadros de dados em R com base em um nome de coluna sem correspondência:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with unmatched name
merge(df1, df2, by. x = ' team ', by. y = ' team_name ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

O resultado é um quadro de dados que corresponde às linhas usando a coluna team no primeiro quadro de dados e a coluna team_name no segundo quadro de dados.

Exemplo 3: Mesclar com base em vários nomes de colunas correspondentes

O código a seguir mostra como mesclar dois quadros de dados em R com base em vários nomes de colunas correspondentes:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by=c(' team ', ' position '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

O resultado é um quadro de dados que corresponde às linhas em cada quadro de dados usando a equipe e a coluna de posição em cada quadro de dados.

Exemplo 4: Mesclar com base em vários nomes de colunas sem correspondência

O código a seguir mostra como mesclar dois quadros de dados em R com base em vários nomes de colunas sem correspondência:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'A', 'B', 'B'),
                  position_name=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by. x =c(' team ', ' position '), by. y =c(' team_name ', ' position_name '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

O resultado é um quadro de dados que corresponde às linhas usando as colunas team e position no primeiro quadro de dados e as colunas team_name e position_name no segundo quadro de dados.

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 uma junção interna em 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 *