Як створити перехресну таблицю за допомогою 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 гравець, який займає позицію «C» і належить до команди «A»
  • Є 1 гравець, який займає позицію «C» і належить до команди «B»
  • Є 1 гравець, який займає позицію «F» і належить до команди «A»
  • Є 2 гравці, які мають позицію «F» і належать до команди «B»
  • Є 2 гравці, які займають позицію «G» і належать до команди «A»
  • Є 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

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

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