Полное руководство: как использовать функцию агрегата() в R


Функцию агрегата() в R можно использовать для вычисления сводной статистики для набора данных.

Эта функция использует следующий базовый синтаксис:

совокупность (x, by, FUN)

куда:

  • x : переменная для агрегирования
  • by : список переменных для группировки
  • FUN : сводная статистика для вычисления

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

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
 position=c('G', 'G', 'F', 'G', 'F', 'F'),
 points=c(99, 90, 86, 88, 95, 99),
 assists=c(33, 28, 31, 39, 34, 23),
 rebounds=c(30, 28, 24, 24, 28, 33))

#view data frame
df

 team position points assists rebounds
1 A G 99 33 30
2 A G 90 28 28
3 A F 86 31 24
4 B G 88 39 24
5 B F 95 34 28
6 B F 99 23 33

Пример 1: Агрегированное среднее по группе

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

#find mean points by team
aggregate(df$points, by=list(df$team), FUN=mean)

 Group.1 x
1 A 91.66667
2 B 94.00000

Это говорит нам:

  • Игроки команды А набирали в среднем 91,67 очка за игру.
  • Игроки команды Б набирали в среднем по 94 очка за игру.

Обратите внимание, что вы также можете изменить имена столбцов в выводе с помощью функции colnames() :

#find mean points by team
agg <- aggregate(df$points, by=list(df$team), FUN=mean)

#rename columns in output
colnames(agg) <- c('Team', 'Mean_Points')

#view output
agg

 Team Mean_Points
1 A 91.66667
2 B 94.00000

Пример 2: Совокупный подсчет по группам

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

#count number of players by team
aggregate(df$points, by=list(df$team), FUN=length)

 Group.1 x
1 A 3
2 B 3

Это говорит нам:

  • В команде А 3 игрока.
  • В команде Б 3 игрока.

Пример 3: Суммарная сумма по группам

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

#find sum of points scored by team
aggregate(df$points, by=list(df$team), FUN=sum)

 Group.1 x
1 A 275
2 B 282

Это говорит нам:

  • Команда А набрала в общей сложности 275 очков.
  • Команда B набрала в общей сложности 282 очка.

Пример 4. Объединение нескольких столбцов

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

#find mean of points scored, grouped by team and position
aggregate(df$points, by=list(df$team, df$position), FUN=mean)

 Group.1 Group.2 x
1 A F 86.0
2 B F 97.0
3 A G 94.5
4 B G 88.0

Это говорит нам:

  • Игроки на позиции «F» в команде А набирали в среднем 86 очков.
  • Игроки на позиции «F» в команде B набрали в среднем 97 очков.
  • Игроки на позиции «G» в команде А набрали в среднем 94,5 очка.
  • Игроки на позиции «G» в команде B набирали в среднем 88 очков.

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

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

Как использовать функцию table() в R
Как использовать функцию gsub() в R
Как использовать функцию summary() в R

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