Как рассчитать режим по группе в r (с примерами)


Режим набора данных представляет собой наиболее часто встречающееся значение.

Статистическое программное обеспечение R не имеет встроенной функции для расчета режима набора данных, но вы можете использовать следующую функцию для расчета режима:

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

В следующих примерах показано, как использовать эту функцию для расчета режима по группе в R.

Пример 1: режим расчета по группе в R (один режим)

Предположим, у нас есть следующий кадр данных в 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, 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

Мы можем использовать следующий код для расчета режима очков , сгруппированных по командам :

 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

По результатам мы видим:

  • Режим очков для команды А равен 7 .
  • Режим очков для команды Б — 12 .

Пример 2. Расчет режима по группе в R (несколько режимов)

Предположим, у нас есть следующий кадр данных в 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

Мы можем использовать следующий код для расчета режима очков , сгруппированных по командам :

 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

По результатам мы видим:

  • Режим очков для команды А равен 7 .
  • Метод подсчета очков для команды Б – 12 и 10 .

В этом примере два значения точки встречались чаще всего для команды B. Поэтому каждое из этих значений режима возвращается в отдельной строке для команды B в выходных данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как рассчитать другую описательную статистику в R:

Как посчитать сумму пяти чисел в R
Как создать сводные таблицы в R
Как использовать функцию Mean() в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *