Como encontrar elementos duplicados usando dplyr
Você pode usar os seguintes métodos para localizar elementos duplicados em um quadro de dados usando dplyr:
Método 1: mostrar todas as linhas duplicadas
library (dplyr) #display all duplicate rows df %>% group_by_all() %>% filter(n()> 1 ) %>% A group()
Método 2: mostrar o número de duplicatas para todas as linhas duplicadas
library (dplyr)
#display duplicate count for all duplicated rows
df %>%
add_count(col1, col2, col3) %>%
filter(n> 1 ) %>%
distinct()
Este tutorial explica como usar cada método na prática com o seguinte quadro de dados:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
df
team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17
Exemplo 1: Mostrar todas as linhas duplicadas
O código a seguir mostra como exibir todas as linhas duplicadas no quadro de dados:
library (dplyr)
#display all duplicate rows in data frame
df %>%
group_by_all() %>%
filter(n()> 1 ) %>%
A group()
# A tibble: 6 x 3
team position points
1 AG 10
2 AG 10
3 BG 15
4 BG 15
5 BF 17
6 BF 17
O resultado é um quadro de dados contendo 6 linhas, cada uma delas uma linha duplicada.
Nota : Se você deseja apenas saber quais linhas possuem valores duplicados em colunas específicas, você pode usar algo como group_by(team) para encontrar linhas que possuem valores duplicados apenas na coluna da equipe .
Exemplo 2: mostre o número de duplicatas para todas as linhas duplicadas
O código a seguir mostra como exibir a contagem duplicada para todas as linhas duplicadas no quadro de dados:
library (dplyr)
#display duplicate count for each row
df %>%
add_count(team, position, points) %>%
filter(n> 1 ) %>%
distinct()
team position points n
1 GA 10 2
2 BG 15 2
3 BF 17 2
A coluna n exibe o número total de duplicatas para cada linha.
Por exemplo:
- A linha com os valores A, G e 10 aparece 2 vezes no bloco de dados.
- A linha com os valores B, G e 15 aparece 2 vezes no bloco de dados.
- A linha com os valores B, F e 17 aparece 2 vezes no bloco de dados.
Nota : Se você deseja apenas saber quais linhas possuem valores duplicados em colunas específicas, inclua apenas essas colunas específicas na função add_count() .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como filtrar valores únicos usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como contar o número de ocorrências em colunas em R