Como contar observações por grupo em r
Muitas vezes você pode estar interessado em contar o número de observações por grupo em R.
Felizmente, isso é fácil de fazer usando a função count() da biblioteca dplyr .
Este tutorial explica vários exemplos de uso prático desta função usando o seguinte data frame:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C' , 'CC'), position = c('G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F', 'F '), points = c(4, 13, 7, 8, 15, 15, 17, 9, 21, 22, 25, 31)) #view data frame df team position points 1 GA 4 2 AG 13 3AF 7 4 BG 8 5 BF 15 6 BF 15 7 BF 17 8 BG 9 9 GC 21 10 CF 22 11 CF 25 12 CF 31
Exemplo 1: contagem por uma variável
O código a seguir mostra como contar o número total de jogadores por equipe:
library (dplyr)
#count total observations by variable 'team'
df %>% count(team)
# A tibble: 3 x 2
team n
1 to 3
2 B 5
3 C 4
Pelo resultado podemos ver que:
- A equipe A é composta por 3 jogadores
- A equipe B é composta por 5 jogadores
- A equipe C é composta por 4 jogadores
Esta função count() única nos dá uma boa ideia da distribuição de jogadores por equipe.
Observe que também podemos classificar as contagens se quisermos:
#count total observations by variable 'team' df %>% count(team, sort= TRUE ) # A tibble: 3 x 2 team n 1 B 5 2 C 4 3 to 3
Exemplo 2: Contando por diversas variáveis
Também podemos classificar por diversas variáveis:
#count total observations by 'team' and 'position'
df %>% count(team, position)
# A tibble: 6 x 3
team position n
1 AF 1
2 AG 2
3 BF 3
4 BG 2
5 CF 3
6 GC 1
Pelo resultado podemos ver que:
- O Time A possui 1 jogador na posição “F” (avançado) e 2 jogadores na posição “G” (guarda).
- O Time B possui 3 jogadores na posição “F” (atacante) e 2 jogadores na posição “G” (guarda).
- O Time C possui 3 jogadores na posição “F” (avançado) e 1 jogador na posição “G” (guarda).
Exemplo 3: número ponderado
Também podemos “ponderar” as contagens de uma variável por outra variável. Por exemplo, o código a seguir mostra como contar o total de observações por equipe, usando a variável “pontos” como peso:
df %>% count(team, wt= points )
# A tibble: 3 x 2
team n
1 to 24
2 B 64
3 C 99
Você pode encontrar a documentação completa da função count() aqui .