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.