Две наиболее распространенные задачи, которые вы будете выполнять при анализе данных, — это группировка и суммирование данных.
К счастью, пакет 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( ) , включают функции для фильтрации строк фрейма данных и упорядочивания строк в определенном порядке .