Como calcular o modo por grupo em r (com exemplos)


A moda de um conjunto de dados representa o valor mais frequente.

O software estatístico R não possui uma função integrada para calcular a moda de um conjunto de dados, mas você pode usar a seguinte função para calcular a moda:

 find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

Os exemplos a seguir mostram como usar esta função para calcular a moda por grupo em R.

Exemplo 1: calcular modo por grupo em R (um modo)

Suponha que temos o seguinte quadro de dados em R que mostra os pontos marcados por jogadores de basquete de diferentes times:

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(5, 7, 7, 9, 12, 12, 10, 14))

#view data frame
df

  team points
1 to 5
2 to 7
3 to 7
4 to 9
5 B 12
6 B 12
7 B 10
8 B 14

Podemos usar o seguinte código para calcular a moda dos pontos , agrupados por equipe :

 library (dplyr)

#define function to calculate mode
find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

#calculate mode of 'points' by 'team'
df %>%
  group_by(team) %>%
  summarize(mode_points = find_mode(points))

# A tibble: 2 x 2
  team mode_points
         
1 to 7
2 B 12

Dos resultados podemos ver:

  • O modo de pontos para o Time A é 7 .
  • O modo de pontos para o Time B é 12 .

Exemplo 2: Calcular modo por grupo em R (modos múltiplos)

Suponha que temos o seguinte quadro de dados em R:

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(5, 7, 7, 9, 12, 12, 10, 10))

#view data frame
df

  team points
1 to 5
2 to 7
3 to 7
4 to 9
5 B 12
6 B 12
7 B 10
8 B 10

Podemos usar o seguinte código para calcular a moda dos pontos , agrupados por equipe :

 library (dplyr)

#define function to calculate mode
find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

#calculate mode of 'points' by 'team'
df %>%
  group_by(team) %>%
  summarize(mode_points = find_mode(points))

# A tibble: 3 x 2
# Groups: team [2]
  team mode_points
         
1 to 7
2 B 12
3 B 10

Dos resultados podemos ver:

  • O modo de pontos para o Time A é 7 .
  • O método de pontuação para a Equipe B é 12 e 10 .

Neste exemplo, dois valores de pontos ocorreram com mais frequência para a Equipe B. Cada um desses valores de modo é, portanto, retornado em uma linha separada para a Equipe B na saída.

Recursos adicionais

Os tutoriais a seguir explicam como calcular outras estatísticas descritivas em R:

Como calcular o resumo de cinco números em R
Como criar tabelas de resumo em R
Como usar a função Mean() em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *