Ich habe eine Längs-Follow-up von Blutdruckaufzeichnungen. Der Wert an einem bestimmten Punkt ist weniger prädiktiv als der gleitende Durchschnitt (rollender Mittelwert), weswegen Id es berechnen möchte. Die Daten sehen aus wie Id zu berechnen eine neue Variable, genannt BLOODPRESSUREUPDATED. Diese Variable sollte der gleitende Durchschnitt für BLOODPRESSURE sein und die folgenden Merkmale aufweisen: Ein gleitender Durchschnitt ist der aktuelle Wert plus der vorherige Wert geteilt durch zwei. Für die erste Beobachtung ist die BLOODPRESSUREUPDATED nur die aktuelle BLOODPRESSURE. Wenn das fehlt, sollte BLOODPRESSUREUPDATED das Gesamtmittel sein. Fehlende Werte sollten mit dem nächsten vorherigen Wert ausgefüllt werden. Ive versuchte die folgenden: Ich habe auch versucht rollaply und rollmeanr ohne Erfolg. Id schätzen einige Hilfe. Bei der Berechnung des gleitenden Mittelwertes ist die Anzahl der zurückgegebenen Elemente kleiner als die Anzahl der Zeilen der Daten, d. h. es werden nur die quotn-1quot-Elemente zurückgegeben. So kann das Problem hier verursacht werden. Oder würden Sie erwägen, die gleitende mittlere Spalte separat hinzuzufügen, zB: test2BLOODPRESSUREUPDATED lt - mit (test2, c (Mittelwert (BLOODPRESSURE, na. rm T), rollapply (BLOODPRESSURE, 2, mean, na. rm T))) ndash KFB Oct 5 14 am 3:40 Vielen Dank für die Bemühung KFB. Leider hat es nicht geklappt. Ich versuchte ein paar bearbeitete Versionen sowie. Vielleicht sind die Zoo-Funktionen nicht dafür geeignet, habe ich folgendes codiert, das funktioniert: test5 lt-test testum lt - rep (NA, nrow (test5)) test5first lt - dupliziert (test5ID) für (i in 1: nrow Test5)) else test5 Aber es ist unglaublich langsam. Ndash Ich habe zwei Bedingungen, um Mittelwerte für Spalte A zu erhalten. Bedingung 1: Ich möchte Mittelwert von Spalte A erhalten, wenn B 1 ist, dh nur row1 und row2 Werden gemittelt. Bedingung 2: Ich möchte Durchschnitt von Spalte B erhalten, wenn Spalte As Werte größer als 1 aber kleiner als 3 sind, d. h. nur Zeile 2 wird betrachtet. Ich weiß, ich kann Filter verwenden, um das dataframe zu schneiden, um Spalte B 1 nur zu haben. Allerdings bin ich nicht sicher, wie es zu tun, wenn ich möchte, dass die Spalte B als Bereich innerhalb 1 und 3 betrachtet werden. Gibt es intelligentere Wege, um die durchschnittlichen Werte der Spalte ohne Schneiden der Dataframe in eine kleinere Größe zuerst gefragt 26. Mai 11 um 11:54 Uhr
No comments:
Post a Comment