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.