Как получить среднее значение столбца в зависимости от другого столбца в R - PullRequest
0 голосов
/ 11 февраля 2020

В настоящее время я пытаюсь получить среднее значение в кадре данных.


df построен так:

'data.frame':   365 obs. of  5 variables:

$ Day      : chr  "01" "02" "03" "04" ...

$ Month    : Factor w/ 12 levels "01","02","03",..: 1 1 1 1 1 1 1 1 1 1 ...

$ Year     : chr  "2019" "2019" "2019" "2019" ...

$ XXX      : int  2 4 5 5 7 6 6 7 6 6 ...

$ Weekday  : Factor w/ 7 levels "Monday","Tuesday",..: 2 3 4 5 6 7 1 2 3 4 ...

Я хотел бы получить среднее значение для значения XXX, но только за первый месяц (my_data $ Month == "01 «). Я попытался отфильтровать его с помощью dplyr, но не смог разобраться ..

(Для понимания: для каждого дня есть одно значение в XXX, df для одного целого года)

Может кто-то Помогите? Буду очень признателен!

1 Ответ

0 голосов
/ 11 февраля 2020

Это базовое решение R должно сделать это:

mean(df$XXX[df$month=="01"], na.rm = T)

Объяснение:

Вы используете функцию mean для вычисления среднего значения переменной XXX в вашем фрейме данных df, используя аргумент na.rm = T, чтобы удостовериться, что пропущенные значения (NA s) удалены для этого вычисления, но поместите подкадр данных в те строки, которые имеют значение 01 в столбце month, чтобы вычислить среднее только для соответствующих значений в столбце XXX.

РЕДАКТИРОВАТЬ :

На всякий случай, если вы хотите рассчитать средние значения не только для одного месяц, но все месяцы, вы можете сделать это за один go, используя aggregate:

aggregate(month ~ XXX, data = df, mean)
...