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


Часто вас может заинтересовать подсчет количества наблюдений по группам в R.

К счастью, это легко сделать с помощью функции count() из библиотеки dplyr .

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

#create data frame
df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
 position = c('G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F', 'F'),
 points = c(4, 13, 7, 8, 15, 15, 17, 9, 21, 22, 25, 31))

#view data frame
df

 team position points
1 A G 4
2 A G 13
3 A F 7
4 B G 8
5 B F 15
6 B F 15
7 B F 17
8 B G 9
9 C G 21
10 C F 22
11 C F 25
12 C F 31

Пример 1: подсчет по одной переменной

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

library(dplyr)

#count total observations by variable 'team'
df %>% count(team)

# A tibble: 3 x 2
 team n

1 A 3
2 B 5
3 C 4

Из вывода мы видим, что:

  • В команде А 3 игрока.
  • В команде Б 5 игроков.
  • Команда C состоит из 4 игроков.

Эта единственная функция count() дает нам хорошее представление о распределении игроков по командам.

Обратите внимание, что мы также можем отсортировать количество, если хотим:

#count total observations by variable 'team'
df %>% count(team, sort= TRUE )

# A tibble: 3 x 2
 team n

1 B 5
2 C 4
3 A 3

Пример 2: подсчет по нескольким переменным

Мы также можем сортировать более чем по одной переменной:

#count total observations by 'team' and 'position'
df %>% count(team, position)

# A tibble: 6 x 3
 team position n

1 A F 1
2 A G 2
3 B F 3
4 B G 2
5 C F 3
6 C G 1

Из вывода мы видим, что:

  • В команде А есть 1 игрок на позиции «F» (нападающий) и 2 игрока на позиции «G» (охранник).
  • В команде Б 3 игрока на позиции «F» (нападающий) и 2 игрока на позиции «G» (охранник).
  • В команде C 3 игрока на позиции «F» (нападающий) и 1 игрок на позиции «G» (охранник).

Пример 3: Взвешенный счет

Мы также можем «взвесить» количество одной переменной по другой переменной. Например, следующий код показывает, как подсчитать общее количество наблюдений для каждой команды, используя переменную 'points' в качестве веса:

df %>% count(team, wt= points )

# A tibble: 3 x 2
 team n

1 A 24
2 B 64
3 C 99

Вы можете найти полную документацию по функции count() здесь .

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