Вы можете использовать следующий синтаксис для вычисления условного среднего значения в R:
mean(df[df$team == 'A', 'points'])
Это вычисляет среднее значение столбца «баллы» для каждой строки во фрейме данных, где столбец «команда» равен «А».
В следующих примерах показано, как использовать этот синтаксис на практике со следующим фреймом данных:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
points=c(99, 90, 93, 86, 88, 82),
assists=c(33, 28, 31, 39, 34, 30))
#view data frame
df
team points assists
1 A 99 33
2 A 90 28
3 A 93 31
4 B 86 39
5 B 88 34
6 B 82 30
Пример 1: Расчет условного среднего для категориальной переменной
В следующем коде показано, как вычислить среднее значение столбца «точки» только для строк во фрейме данных, где столбец «команда» имеет значение «А».
#calculate mean of 'points' column for rows where team equals 'A'
mean(df[df$team == 'A', 'points'])
[1] 94
Среднее значение в столбце «Очки» для строк, где «команда» равно «А», равно 94 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
- Среднее количество баллов: (99 + 90 + 93) / 3 = 94
Пример 2. Вычисление условного среднего для числовой переменной
В следующем коде показано, как вычислить среднее значение столбца «помощь» только для строк во фрейме данных, где значение столбца «точки» больше или равно 90.
#calculate mean of 'assists' column for rows where 'points' >= 90
mean(df[df$points >= 90 , 'assists'])
[1] 30.66667
Среднее значение в столбце «ассисты» для строк, где «очки» больше или равны 90, составляет 30,66667 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
- Среднее количество передач: (33 + 28 + 31) / 3 = 30,66667.
Дополнительные ресурсы
В следующих руководствах объясняется, как рассчитать другие средние значения в R:
Как рассчитать усеченное среднее в R
Как рассчитать среднее геометрическое в R
Как рассчитать средневзвешенное значение в R