Как создать перекрестную таблицу с помощью dplyr (с примерами)
Вы можете использовать следующий базовый синтаксис для создания перекрестной таблицы с использованием функций из пакетов dplyr и Tidyr в R:
df %>% group_by (var1, v ar2) %>% tally () %>% spread (var1,n)
Следующие примеры показывают, как использовать этот синтаксис на практике.
Пример 1. Создание базовой перекрестной таблицы
Предположим, у нас есть следующий кадр данных в R:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'), dots=c(7, 7, 8, 11, 13, 15, 19, 13)) #view data frame df team position points 1 AG 7 2 AG 7 3AF 8 4 AC 11 5 BG 13 6 BF 15 7 BF 19 8 BC 13
Мы можем использовать следующий синтаксис для создания перекрестной таблицы для переменных «команда» и «позиция»:
library (dplyr) library (tidyr) #produce crosstab df %>% group_by (team, position) %>% tally () %>% spread (team, n) # A tibble: 3 x 3 position AB 1 C 1 1 2 F 1 2 3 G 2 1
Вот как интерпретировать значения перекрестной таблицы:
- Есть 1 игрок, который занимает позицию «С» и принадлежит команде «А».
- Есть 1 игрок, который занимает позицию «С» и принадлежит команде «Б».
- Есть 1 игрок, который занимает позицию «F» и принадлежит команде «А».
- Есть 2 игрока, которые имеют позицию «F» и принадлежат команде «Б».
- Есть 2 игрока, которые имеют позицию «G» и принадлежат команде «А».
- Есть 1 игрок, который занимает позицию «G» и принадлежит команде «B».
Обратите внимание, что мы можем изменить строки и столбцы кросс-таблицы, изменив переменную, используемую в функцииspread() :
library (dplyr) library (tidyr) #produce crosstab with 'position' along columns df %>% group_by (team, position) %>% tally () %>% spread (position, n) # A tibble: 2 x 4 # Groups: team [2] team CFG 1 A 1 1 2 2 B 1 2 1
Связанный: Как использовать функцию «Распространение» в Tidyr
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные функции в dplyr:
Как рассчитать относительные частоты с помощью dplyr
Как выбрать столбцы по индексу с помощью dplyr
Как удалить строки с помощью dplyr