Как рассчитать процент по группе в R (с примером)


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

library(dplyr)

df %>%
 group_by(group_var) %>%
 mutate(percent = value_var/sum(value_var))

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычислить процент по группе в R

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

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
 points=c(12, 29, 34, 14, 10, 11, 7, 36, 34, 22))

#view data frame
df

 team points
1 A 12
2 A 29
3 A 34
4 A 14
5 A 10
6 B 11
7 B 7
8 B 36
9 B 34
10 B 22

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

library(dplyr)

#calculate percentage of points scored, grouped by team
df %>%
 group_by(team) %>%
 mutate(percent = points/sum(points))

# A tibble: 10 x 3
# Groups: team [2]
 team points percent

 1 A 12 0.121 
 2 A 29 0.293 
 3 A 34 0.343 
 4 A 14 0.141 
 5 A 10 0.101 
 6 B 11 0.1 
 7 B 7 0.0636
 8 B 36 0.327 
 9 B 34 0.309 
10 B 22 0.2

Столбец процентов показывает процент от общего количества очков, набранных этим игроком в своей команде.

Например, игроки команды А набрали в сумме 99 очков.

Таким образом, игрок в первой строке фрейма данных, набравший 12 очков, набрал в сумме 12/99 = 12,12% от общего количества очков команды А.

Точно так же игрок во второй строке фрейма данных, набравший 29 очков, набрал в сумме 29/99 = 29,29% от общего количества очков для команды А.

И так далее.

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

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

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

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