Dplyr: як узагальнити дані, але зберегти всі стовпці


Під час використання функції summarise() у dplyr будь-які змінні, не включені до функцій summarise() або group_by() , будуть автоматично видалені.

Однак ви можете використовувати функцію mutate() , щоб узагальнити дані, зберігаючи всі стовпці у фреймі даних.

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: підсумуйте дані, але збережіть усі стовпці за допомогою dplyr

Припустимо, що у нас є наступний кадр даних, що містить інформацію про різних баскетболістів:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

Ми можемо використати такий синтаксис, щоб підсумувати середні бали , набрані командою :

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

Стовпець під назвою Mean_pts відображає середні бали, набрані кожною командою.

З результату ми бачимо:

  • Середня кількість очок, набраних гравцями команди А, становить 7 .
  • Середній бал, набраний гравцями команди Б, становить 13,7 .
  • Середня кількість очок, набраних гравцями команди C, становить 27 .

Однак, скажімо, ми хочемо зберегти всі інші стовпці з вихідного кадру даних.

Для цього ми можемо використати такий синтаксис із функцією mutate() :

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

Використовуючи функцію mutate() , ми можемо створити новий стовпець під назвою Mean_pts , який підсумовує середні бали, набрані командою, зберігаючи всі інші стовпці з вихідного кадру даних.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в dplyr:

dplyr: Як змінити змінну, якщо стовпець містить рядок
dplyr: Як змінити рівні факторів за допомогою mutate()
dplyr: Як додати кілька стовпців

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

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