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