Суммирование по группе из двух переменных

Рассмотрим упрощенный набор данных (реальный содержит больше столбцов и строк):

df
    tp tf   weight
1  FWD RF 78.86166
2   MF LF 81.04566
3  DEF LF 80.70527
4  DEF LF 82.96071
5  DEF RF 78.42544
6   GK LF 79.37686
7  DEF RF 78.79928
8   MF RF       NA
9   MF RF 78.93815
10 DEF RF 80.00284

Я хочу заполнить пропущенные значения по весу по группаммедиана ТП и ТФ в сочетании

То, что я пробовал до сих пор, это следующее (я использовал dlpyr)

temp <- df %>% group_by(tp,tf) %>% summarise(mvalue = median(weight,na. rm = TRUE))

Это дает временное значение:

temp
Source: local data frame [6 x 3]
Groups: tp [?]

      tp     tf   mvalue
  <fctr> <fctr>    <dbl>
1    DEF     LF 81.83299
2    DEF     RF 78.79928
3    FWD     RF 78.86166
4     GK     LF 79.37686
5     MF     LF 81.04566
6     MF     RF 78.93815

Теперь я не могу понять, как заполнить пропущенные значения в df соответствующей медианой группы.

В моем простом случае есть только один NA, соответствующий tp = MF и tf = RF, медианное значение, если вы посмотрите на temp, равно 78.93815.

Как мне это вообще сделать? Предлагаю, если у вас есть лучший подход, чем мой первоначальный.

РЕДАКТИРОВАТЬ: Фактический фрейм данных имеет уникальную переменную Id, если это имеет значение или может помочь.

Ответы на вопрос(2)

Ваш ответ на вопрос