Как рассчитать условное среднее значение в R (с примерами)


Вы можете использовать следующий синтаксис для вычисления условного среднего значения в 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