ollender Mittelwert (gleitender Durchschnitt) nach Gruppe /, ID mit dplyr

Ich verfolge die Blutdruckmessungen in Längsrichtung.

Der Wert an einem bestimmten Punkt ist weniger aussagekräftig als der gleitende Durchschnitt (gleitender Mittelwert), weshalb ich ihn berechnen möchte. Die Daten sehen aus wie

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
                   ")

Ich möchte eine neue Variable mit dem Namen BLOOD_PRESSURE_UPDATED berechnen. Diese Variable sollte der gleitende Durchschnitt für BLOOD_PRESSURE sein und die folgenden Merkmale aufweisen:

Ein gleitender Durchschnitt ist der aktuelle Wert plus dem vorherigen Wert geteilt durch zwei.Für die erste Beobachtung ist BLOOD_PRESSURE_UPDATED nur der aktuelle BLOOD_PRESSURE. Wenn dies fehlt, sollte BLOOD_PRESSURE_UPDATED der Gesamtmittelwert sein. Fehlende Werte sollten mit dem nächsthöheren vorherigen Wert ausgefüllt werden.

Ich habe Folgendes versucht:

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

Ich habe auch Rollaply und Rollmeanr versucht, ohne Erfolg.

Ich würde mich über Unterstützung freuen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage