Як обчислити режим за групою в 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

З результатів ми бачимо:

  • Режим очок для команди A становить 7 .
  • Режим очок для команди B становить 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

З результатів ми бачимо:

  • Режим очок для команди A становить 7 .
  • Метод підрахунку очок для команди B — 12 і 10 .

У цьому прикладі два значення балів зустрічаються найчастіше для команди B. Тому кожне з цих значень режиму повертається в окремому рядку для команди B у вихідних даних.

Додаткові ресурси

У наступних посібниках пояснюється, як обчислити іншу описову статистику в R:

Як обчислити підсумок п’яти чисел у R
Як створити зведені таблиці в R
Як використовувати функцію Mean() у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *