Урок 6 Пакет dplyr: Группировка и агрегация данных, group_by, summarise
6.1 Описание
В этом видео мы разберём одну из основных операций анализа данных, группировку и агрегацию. В ходе урока мы будем использовать пакет dplyr
из библиотеки tidyverse
и функции group_by()
и summarise()
.
Мы рассмотрим всё семейство функций summarise()
, т.е. summarise()
, summarise_if()
и summarise_at()
.
Список основных агрегирующих функций: sum - суммирование mean - среднее арифметическое min - минимальное max - максимальное median - медиана length - количество
6.3 Материалы
Все материалы к данному уроку можно найти по ссылке.
6.4 Код
# подключение пакетов
library(vroom)
library(dplyr)
# загрузка данных
<- vroom("https://raw.githubusercontent.com/selesnow/publications/master/code_example/from_excel_to_r/lesson_3/ga_nowember.csv")
ga_data
# сгруппировать данные по дням
%>%
ga_data group_by(date) %>%
summarise(sessions = sum(sessions),
bounces = sum(bounces))
# другой вариант
%>%
ga_data group_by(date) %>%
summarise_at(c("sessions", "bounces"),
sum)
# группировка по двум полям
%>%
ga_data group_by(date, medium) %>%
summarise_at(c("sessions", "bounces"),
sum)
%>%
ga_data group_by(date, medium) %>%
summarise(ses = sum(sessions),
bounc = sum(bounces))
# сумма по всем числовым столбцам
%>%
ga_data group_by(medium) %>%
summarise_if(is.numeric, mean)
# среднесуточное количество сеансов по каналам
<- unique( ga_data$date ) %>% length
ndays
%>%
ga_data group_by(medium) %>%
summarise(daily_sessions = sum(sessions) / ndays)
# применяем сразу несколько агрегирующий функций
# сумма по всем числовым столбцам
<-
result %>%
ga_data group_by(medium) %>%
summarise_if(is.numeric,
list( avg = mean,
med = median,
sum = sum,
count = length,
min = min,
max = max))