Saturday 15 July 2017

Durchschnittlich

Im ein R Neuling und Im, das viel Mühe hat, etwas zu tun, das vermutlich sehr einfach ist. Ich habe einen großen Datensatz aufgeteilt in Gruppen nach Ländercode, und ich möchte einen dreimonatigen rollenden Durchschnitt von einem Preisindex, nach Land zu nehmen, und dann legte es in eine neue Spalte, die bis zum entsprechenden Monat übereinstimmt. Ich habe versucht, Rollmean wie folgt verwenden, ohne Erfolg (Code-und Fehlermeldungen unten): Jede Hilfe wäre viel geschätzt gefragt Mar 10 12 at 6:42 In Ihrem ersten Versuch verwendet Ihre Funktion nicht ihre x-Argument und immer zurück Die gleiche Sache (ein Vektor mit der falschen Größe). Darüber hinaus sollte das erste Argument, ein Vektor sein. Schließlich liefert tapply eine Liste von Vektoren zurück: Sie können das Ergebnis nicht direkt in ein data. frame setzen. In Ihrem zweiten Beispiel sollte das dritte Argument von plyr eine Funktion sein, kein Ausdruck. Wenn Sie einen Ausdruck verwenden möchten, können Sie summarize oder transform als Funktion verwenden (summarize gibt ein 1-row data. frame für jeden Wert von ccode zurück, während transform die Anzahl der Zeilen unverändert bleibt) und die Ausdrücke als weitere Argumente setzen . 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 Adam Robinsson 5. Oktober um 7:09 Uhr


No comments:

Post a Comment