Média móvel (média móvel) por grupo /, id com dplyr

Eu tenho um acompanhamento longitudinal de registros de pressão arterial.

O valor em um determinado momento é menos preditivo do que a média móvel (média móvel), e é por isso que eu gostaria de calculá-lo. Os dados parecem

test <- read.table(header=TRUE, text = "
  ID  AGE   YEAR_VISIT  BLOOD_PRESSURE  TREATMENT
  1 20  2000    NA 3
  1 21  2001    129 2
  1 22  2002    145 3
  1 22  2002    130 2
  2 23  2003    NA  NA
  2 30  2010    150 2
  2 31  2011    110 3
  4 50  2005    140 3
  4 50  2005    130 3
  4 50  2005    NA  3
  4 51  2006    312 2
  5 27  2010    140 4
  5 28  2011    170 4
  5 29  2012    160 NA
  7 40  2007    120 NA
                   ")

Gostaria de calcular uma nova variável, chamada BLOOD_PRESSURE_UPDATED. Essa variável deve ser a média móvel de BLOOD_PRESSURE e ter as seguintes características:

Uma média móvel é o valor atual mais o valor anterior dividido por dois.Para a primeira observação, o BLOOD_PRESSURE_UPDATED é apenas o BLOOD_PRESSURE atual. Se isso estiver faltando, BLOOD_PRESSURE_UPDATED deve ser a média geral.Os valores ausentes devem ser preenchidos com o valor anterior mais próximo.

Eu tentei o seguinte:

test2 <- test %>%
  group_by(ID) %>%
  arrange(ID, YEAR_VISIT) %>%
  mutate(BLOOD_PRESSURE_UPDATED = rollmean(x=BLOOD_PRESSURE, 2)) %>%
ungroup()

Eu também tentei rollaply e rollmeanr sem ter sucesso.

Eu apreciaria alguma ajuda.

questionAnswers(2)

yourAnswerToTheQuestion