Полное руководство: как использовать функцию агрегата() в 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