Функцию агрегата() в 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