Wednesday 14 June 2017

Durchschnittlich

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 - duplicated (test5ID) für (i in 1: nrow Test5)) else test5 Aber es ist unglaublich langsam. Ndash Adam Robinsson 5. Oktober um 7: 09Moving Durchschnitt - MA BREAKING DOWN Moving Average - MA Als SMA-Beispiel betrachten Sie eine Sicherheit mit den folgenden Schlusskursen über 15 Tage: Woche 1 (5 Tage) 20, 22, 24, 25, 23 Woche 2 (5 Tage) 26, 28, 26, 29, 27 Woche 3 (5 Tage) 28, 30, 27, 29, 28 Eine 10-tägige MA würde die Schlusskurse für die ersten 10 Tage als erste ausrechnen Datenpunkt. Der nächste Datenpunkt würde den frühesten Preis senken, den Preis am Tag 11 addieren und den Durchschnitt nehmen, und so weiter, wie unten gezeigt. Wie bereits erwähnt, verzögert MAs die aktuelle Preisaktion, weil sie auf vergangenen Preisen basieren, je länger der Zeitraum für die MA ist, desto größer ist die Verzögerung. So wird ein 200-Tage-MA haben eine viel größere Verzögerung als eine 20-Tage-MA, weil es Preise für die letzten 200 Tage enthält. Die Länge der MA zu verwenden, hängt von den Handelszielen, mit kürzeren MAs für kurzfristigen Handel und längerfristige MAs eher geeignet für langfristige Investoren. Die 200-Tage-MA ist weithin gefolgt von Investoren und Händlern, mit Pausen über und unter diesem gleitenden Durchschnitt als wichtige Trading-Signale. MAs auch vermitteln wichtige Handelssignale auf eigene Faust, oder wenn zwei Durchschnitte überqueren. Eine steigende MA zeigt an, dass die Sicherheit in einem Aufwärtstrend liegt. Während eine sinkende MA zeigt, dass es in einem Abwärtstrend ist. In ähnlicher Weise wird das Aufwärtsmoment mit einem bulligen Crossover bestätigt. Die auftritt, wenn eine kurzfristige MA über einem längerfristigen MA kreuzt. Abwärts-Momentum wird mit einem bärischen Übergang bestätigt, der auftritt, wenn ein kurzfristiges MA-Kreuz unter einem längerfristigen MA. Im ein R-Neuling und Im mit viel Mühe macht etwas, das wahrscheinlich 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 . Beantwortet Mar 10 12 at 7:03


No comments:

Post a Comment