Como agrupar e filtrar dados usando dplyr
Você pode usar a seguinte sintaxe básica para agrupar e filtrar dados usando o pacote dplyr em R:
df %>% group_by(team) %>% filter(any(points = = 10 ))
Esta sintaxe específica agrupa um quadro de dados por coluna chamado equipe e filtra apenas grupos onde pelo menos um valor na coluna de pontos é igual a 10.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: agrupar e filtrar dados usando dplyr
Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))
#view data frame
df
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7
Podemos usar o código a seguir para agrupar o quadro de dados pelo valor na coluna Equipe e, em seguida, filtrar todos os grupos que não possuem pelo menos um valor na coluna Pontos igual a 10:
library (dplyr)
#group by team and filter out teams where no points value is equal to 10
df %>%
group_by(team) %>%
filter(any(points == 10 ))
# A tibble: 6 x 2
# Groups: team [2]
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
Observe que todas as linhas onde o time é igual a “C” são filtradas porque não há valor na coluna de pontos para o time “C” igual a 10.
Observe que este é apenas um exemplo de filtro que poderíamos aplicar.
Por exemplo, poderíamos aplicar outro filtro no qual filtramos equipes com pelo menos um valor na coluna de pontos maior que 13:
library (dplyr)
#group by team and filter out teams where no points value is greater than 13
df %>%
group_by(team) %>%
filter(any(points > 13 ))
# A tibble: 3 x 2
# Groups: team [1]
team points
1 to 10
2 to 15
3 to 8
Observe que apenas as linhas onde o time é igual a “A” são mantidas, pois é o único time com pelo menos um valor de ponto superior a 13.
Nota : Você pode encontrar a documentação completa da função de filtro no dplyr aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no dplyr:
Como selecionar a primeira linha por grupo usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como filtrar linhas contendo uma determinada string usando dplyr