Как добавить среднее значение переменной для группы в столбец элегантным способом? - PullRequest
1 голос
/ 27 сентября 2019

Я хочу добавить среднее значение Temp в месяц в виде столбца в набор данных airquality.Итак, я хочу что-то вроде этого:

  Ozone Solar.R  Wind  Temp Month  Day NEW COLUMN

  41     190   7.4    67     5     1  77.9
  36     118   8      72     5     2  77.9
  12     149  12.6    74     5     3  77.9
  18     313  11.5    62     5     4  77.9
  NA      NA  14.3    56     5     5  77.9
  28      NA  14.9    66     5     6  77.9

Где новый столбец означает среднее значение Temp / месяц.Таким образом, он будет повторять среднее значение Temp в строках, где Month = 5, затем другое среднее значение Temp, где Month = 6 и т. Д.

Я пробовал это:

 airquality %>% mutate(col = sapply(split(Temp, Month), min))

НоЯ получаю сообщение об ошибке, в котором говорится, что отображается 5 строк, а в моем фрейме данных - 153.

Как решить эту проблему элегантным образом?

1 Ответ

1 голос
/ 27 сентября 2019

Вместо split, используйте group_by с 'Месяцем' и получите min от 'Temp' в mutate.min возвращает числовое значение длины 1, которое будет переработано для заполнения всех строк каждой группы

library(dplyr)
airquality %>%
    group_by(Month) %>%
    dplyr::mutate(col = min(Temp))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...