Як створити перехресну таблицю за допомогою 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