Dplyr: como usar anti_join para encontrar registros incomparáveis


Você pode usar a função anti_join() do pacote dplyr em R para retornar todas as linhas em um quadro de dados que não possuem valores correspondentes em outro quadro de dados.

Esta função usa a seguinte sintaxe básica:

 anti_join(df1, df2, by= ' col_name ')

Os exemplos a seguir mostram como usar essa sintaxe na prática.

Exemplo 1: Use anti_join() com uma coluna

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

 #create data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                  dots=c(12, 14, 19, 24, 36))

df2 <- data. frame (team=c('A', 'B', 'C', 'F', 'G'),
                  dots=c(12, 14, 19, 33, 17))

Podemos usar a função anti_join() para retornar todas as linhas no primeiro quadro de dados que não possuem uma equipe correspondente no segundo quadro de dados:

 library (dplyr)

#perform anti join using 'team' column
anti_join(df1, df2, by=' team ')

  team points
1 D 24
2 E 36

Podemos ver que há exatamente duas equipes do primeiro quadro de dados que não possuem um nome de equipe correspondente no segundo quadro de dados.

Exemplo 2: Use anti_join() com múltiplas colunas

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

 #create data frames
df1 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                  position=c('G', 'G', 'F', 'G', 'F', 'C'),
                  dots=c(12, 14, 19, 24, 36, 41))

df2 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                  position=c('G', 'G', 'C', 'G', 'F', 'F'),
                  dots=c(12, 14, 19, 33, 17, 22))

Podemos usar a função anti_join() para retornar todas as linhas no primeiro quadro de dados que não possuem uma equipe e posição correspondentes no segundo quadro de dados:

 library (dplyr)

#perform anti join using 'team' and 'position' columns
anti_join(df1, df2, by=c(' team ', ' position '))

  team position points
1 FY 19
2 BC 41

Podemos ver que existem exatamente dois registros do primeiro quadro de dados que não possuem um nome de equipe e posição correspondentes no segundo quadro de dados.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras funções comuns no dplyr:

Como selecionar colunas por índice usando dplyr
Como juntar vários frames de dados usando dplyr
Como filtrar linhas contendo uma determinada string usando dplyr

Add a Comment

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