Як швидко створити зведені таблиці в r
У Excel зведені таблиці забезпечують простий спосіб групування та узагальнення даних.
Наприклад, якщо ми маємо такий набір даних у Excel, ми можемо використати зведену таблицю, щоб швидко підсумувати загальні продажі за регіонами:
Це говорить нам:
- Всього в регіоні А було 51 продаж
- У регіоні B було 85 продажів
- Регіон С досяг 140 продажів
Або ми могли б узагальнити за іншим показником, таким як середні продажі за регіонами:
Виявляється, ми можемо швидко створити подібні зведені таблиці в R за допомогою функцій group_by() і summary() з пакету dplyr .
Цей посібник містить кілька прикладів того, як це зробити.
Приклад: створення зведених таблиць у R
По-перше, давайте створимо той самий набір даних у R, який ми використовували в попередніх прикладах із Excel:
#create data frame df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'), device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'), sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32)) #view data frame df region device sales 1AX 12 2AX18 3 AY 21 4 BX22 5 BY 34 6 BY 29 7 CX 38 8CX36 9 CY 34 10 CY 32
Далі завантажимо пакет dplyr і скористаємося функціями group_by() і summary() , щоб згрупувати за регіонами та знайти суму продажів за регіонами:
library (dplyr) #find sum of sales by region df %>% group_by (region) %>% summarize (sum_sales = sum (sales)) # A tibble: 3 x 2 region sum_sales 1 to 51 2 B 85 3 C 140
Ми бачимо, що ці числа збігаються з числами, показаними у вступному прикладі Excel.
Також ми можемо розрахувати середні продажі по регіонах:
#find average sales by region df %>% group_by (region) %>% summarize (mean_sales = mean (sales)) # A tibble: 3 x 2 region mean_sales 1 to 17 2 B 28.3 3 C 35
Знову ж таки, ці числа збігаються з числами, показаними в попередньому прикладі Excel.
Зверніть увагу, що ми також можемо групувати за кількома змінними. Наприклад, ми можемо знайти суму продажів, згруповану за регіоном і типом пристрою:
#find sum of sales by region and device type df %>% group_by (region, device) %>% summarize (sum_sales = sum (sales)) # A tibble: 6 x 3 # Groups: region [3] region device sum_sales 1AX30 2 AY 21 3 BX22 4 BY 63 5 CX 74 6 CY 66
Додаткові ресурси
Як виконати VLOOKUP (подібно до Excel) у R
Повний посібник: як групувати та підсумовувати дані в R