R: como agrupar e contar com condição
Você pode usar a seguinte sintaxe básica para realizar uma condição de agrupamento e contagem em R:
library (dplyr) df %>% group_by(var1) %>% summarize(count = sum(var2 == ' val '))
Esta sintaxe específica agrupa as linhas do quadro de dados com base em var1 e então conta o número de linhas onde var2 é igual a “val”.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: agrupar por e contar com uma condição em R
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', 'A', 'B', 'B', 'B', 'B'), pos=c('Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) #view data frame df team pos points 1 A Gu 18 2 A Fo 22 3 A Fo 19 4 A Fo 14 5 B Gu 14 6 B Gu 11 7 B Fo 20 8 B Fo 28
O código a seguir mostra como agrupar o quadro de dados por variável de equipe e contar o número de linhas onde a variável pos é igual a “Gu”:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(pos == ' Gu '))
# A tibble: 2 x 2
team count
1 to 1
2 B 2
Pelo resultado podemos ver:
- O time A tem 1 linha onde a coluna pos é igual a “Gu”
- O time B tem 2 linhas onde a coluna pos é igual a “Gu”
Podemos usar sintaxe semelhante para agrupar e contar com uma condição numérica.
Por exemplo, o código a seguir mostra como agrupar por variável de equipe e contar o número de linhas onde a variável points é maior que 15:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(points > 15 ))
# A tibble: 2 x 2
team count
1 to 3
2 B 2
Pelo resultado podemos ver:
- A equipe A tem 3 linhas onde a coluna de pontos é maior que 15
- A equipe B tem 2 linhas onde a coluna de pontos é maior que 15
Você pode usar sintaxe semelhante para agrupar e contar com qualquer condição específica desejada.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como contar valores em uma coluna com condição em R
Como selecionar os primeiros N valores por grupo em R