2013-10-25 11 views
8

Hallo: Ich habe ein xts Objekt als solches:fügen Sie eine neue Spalte in ein XTS Objekt

  AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
2013-09-09 505.00 507.92 503.48  506.17 12116200  506.17 
2013-09-10 506.20 507.45 489.50  494.64 26490200  494.64 
2013-09-11 467.01 473.69 464.81  467.71 32031600  467.71 
2013-09-12 468.50 475.40 466.01  472.69 14409400  472.69 

Ich versuche, eine Roll zu berechnen bedeuten und verbinden Sie es mit einer neuen Spalte als solche

AA["AAPL.Rolling"] <- rollmean(AA[,"AAPL.Adjusted"],12) 

Obwohl das rollmean(AA[,"AAPL.Adjusted"],12) allein funktioniert; Ich erhalte eine Fehlermeldung, wenn ich versuche, eine neue Spalte anzuhängen. ** auch, was dieses harte macht, ist, dass das neue rollende Mittel Daten in jeder Reihe nicht haben wird, da die ersten 12 "NA" sein sollten Kann jemand helfen? Vielen Dank.

+0

Ihre versuchte Lösung macht keinen Sinn. 'rnorm (12, AA)' gibt Ihnen 12 Beobachtungen aus einer zufälligen Normalverteilung mit 'Mittelwert = AA [1: 12,1]' und sd = 1. Das kommt einem rollenden Mittel nicht einmal nahe. Und du versuchst ein Zoo-Objekt als Spalte eines xts-Objekts hinzuzufügen? Warum sollte das funktionieren? –

+0

@JoshuaUlrich, mein Schlechter - ich habe mein Original bearbeitet – Ahdee

Antwort

13

Sie können keine Spalten zu Zoo/Xts-Objekten hinzufügen. Sie können die $<- Funktion jedoch verwenden.

AA$AAPL.Rolling <- rollmean(AA[,"AAPL.Adjusted"], 12) 

Beachten Sie auch, dass rollmean zentriert ist standardmäßig aktiviert. Sie können rollmeanr verwenden, um die richtige Ausrichtung zu erhalten. Die Auffüllung mit NA erfolgt automatisch, da Sie den Rolling Mean mit dem Originalobjekt zusammenführen. Verwenden Sie fill=NA, wenn Sie rollmean explizit hinzufügen möchten.

+0

Das ist perfekt; sogar ein Problem mit Rollmean vorweggenommen! – Ahdee

+0

interessiert Josh's Meinung über das Hinzufügen eines Zeichenvektors zu diesen XTS-Objekten. Sie hätten also eine char-Spalte und eine int/numerische Spalte .... – d8aninja

+0

@ d8aninja: Das ist nicht möglich, weil xts-Objekte auf der Matrix-Klasse basieren und Sie keine Spalten mit unterschiedlichen Typen in einer Matrix haben können. Das heißt, es gab einige Experimente mit einer "xtsdf" -Klasse. –

Verwandte Themen