Как создать таблицу частот по группам в R


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

library(dplyr)

df %>%
 group_by(var1, var2) %>%
 summarize(Freq=n())

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: создание таблицы частот по группам

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
 position=c('G', 'G', 'G', 'F', 'G', 'F', 'F', 'C'))

#view data frame
df

 team position
1 A G
2 A G
3 A G
4 A F
5 B G
6 B F
7 B F
8 B C

Предположим, мы хотим создать таблицу частоты, которая показывает частоту каждой позиции, сгруппированной по командам.

Для этого мы можем использовать следующий синтаксис:

library(dplyr)

#calculate frequency of position, grouped by team
df %>%
 group_by(team, position) %>%
 summarize(Freq=n())

# A tibble: 5 x 3
# Groups: team [2]
 team position Freq

1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1

Вот как интерпретировать вывод:

  • 1 игрок команды А имеет позицию «F»
  • 3 игрока команды А занимают позицию «G».
  • 1 игрок в команде B имеет позицию «C»
  • 2 игрока в команде B занимают позицию «F».
  • 1 игрок в команде B имеет позицию «G»

Обратите внимание, что мы можем переименовать столбец, содержащий частоты, изменив имя переменной в функции summ() .

Например, мы могли бы вместо этого переименовать столбец в «count»:

library(dplyr)

#calculate frequency of position, grouped by team
df %>%
 group_by(team, position) %>%
 summarize(count=n())

# A tibble: 5 x 3
# Groups: team [2]
 team position count

1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1

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

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

Как рассчитать относительные частоты с помощью dplyr
Как ранжировать переменные по группам с помощью dplyr
Как выбрать столбцы по индексу с помощью dplyr