Как рассчитать режим по группе в 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