Вы можете использовать следующие функции из пакета 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