Як швидко створити зведені таблиці в 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

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

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