Полное руководство: как группировать и суммировать данные в R


Две наиболее распространенные задачи, которые вы будете выполнять при анализе данных, — это группировка и суммирование данных.

К счастью, пакет dplyr в R позволяет быстро группировать и суммировать данные.

Этот учебник содержит краткое руководство по началу работы с dplyr.

Установите и загрузите пакет dplyr

Прежде чем вы сможете использовать функции пакета dplyr, вы должны сначала загрузить пакет:

#install dplyr (if not already installed)
install.packages('dplyr')

#load dplyr 
library(dplyr)

Далее мы проиллюстрируем несколько примеров того, как использовать функции dplyr для группировки и суммирования данных с использованием встроенного набора данных R, называемого mtcars :

#obtain rows and columns of *mtcars*
dim(mtcars)

[1] 32 11

#view first six rows of *mtcars*
head(mtcars)

 mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Основной синтаксис, который мы будем использовать для группировки и суммирования данных, выглядит следующим образом:

data %>%
 group_by(col_name) %>%
 summarize(summary_name = summary_function)

Примечание.Функции summarise() и summarise() эквивалентны.

Пример 1: поиск среднего и медианы по группе

В следующем коде показано, как рассчитать показатели центральной тенденции по группам, включая среднее значение и медиану:

#find mean mpg by cylinder
mtcars %>%
 group_by(cyl) %>%
 summarize(mean_mpg = mean(mpg, na.rm = TRUE ))

# A tibble: 3 x 2
 cyl mean_mpg

1 4 26.7
2 6 19.7
3 8 15.1

#find median mpg by cylinder
mtcars %>%
 group_by(cyl) %>%
 summarize(median_mpg = median(mpg, na.rm = TRUE ))

# A tibble: 3 x 2
 cyl median_mpg

1 4 26 
2 6 19.7
3 8 15.2

Пример 2. Поиск мер распространения по группам

В следующем коде показано, как рассчитать показатели дисперсии по группам, включая стандартное отклонение, межквартильный размах и среднее абсолютное отклонение:

#find sd, IQR, and mad by cylinder
mtcars %>%
 group_by(cyl) %>%
 summarize(sd_mpg = sd(mpg, na.rm = TRUE ),
 iqr_mpg = IQR(mpg, na.rm = TRUE ),
 mad_mpg = mad(mpg, na.rm = TRUE ))

# A tibble: 3 x 4
 cyl sd_mpg iqr_mpg mad_mpg

1 4 4.51 7.60 6.52
2 6 1.45 2.35 1.93
3 8 2.56 1.85 1.56

Пример 3: найти счетчик по группе

В следующем коде показано, как найти счетчик и уникальный счетчик по группе в R:

#find row count and unique row count by cylinder
mtcars %>%
 group_by(cyl) %>%
 summarize(count_mpg = n(),
 u_count_mpg = n_distinct(mpg))

# A tibble: 3 x 3
 cyl count_mpg u_count_mpg

1 4 11 9
2 6 7 6
3 8 14 12

Пример 4: найти процентиль по группе

Следующий код показывает, как найти 90-й процентиль значений для миль на галлон по группе цилиндров:

#find 90th percentile of mpg for each cylinder group
mtcars %>%
 group_by(cyl) %>%
 summarize(quant90 = quantile(mpg, probs = .9))

# A tibble: 3 x 2
 cyl quant90

1 4 32.4
2 6 21.2
3 8 18.3

Дополнительные ресурсы

Вы можете найти полную документацию по пакету dplyr вместе с полезными визуализированными шпаргалками здесь .

Другие полезные функции, которые можно использовать вместе с group_by() и summ( ) , включают функции для фильтрации строк фрейма данных и упорядочивания строк в определенном порядке .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.