Как создать перекрестную таблицу с помощью 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *