2017-03-07 2 views
0

Betrachten Sie Folgendes.XTS-Objekte verlieren die XTS-Klasse, wenn sie untergeordnet werden

junk1.xts <- xts(c(0:10), as.yearqtr("1975 Q1") + 0.25*(0:10)) 
junk2.xts <- xts(c(30:0), as.yearqtr("1970 Q1") + 0.25*(0:30)) 
junk2a.xts <- junk2.xts[index(junk1.xts),] 
class(junk1.xts) 
class(junk2.xts) 
class(junk2a.xts) 

Die ersten beiden Klassen Aussagen ergeben:

[1] "xts" "zoo" 

aber die dritten Ergebnisse in:

[1] "zoo" 

Warum? Ist das normal oder ein Fehler? Was ist der beste Weg, dies zu verhindern und die xts-Klasse für das dritte Objekt zu erhalten?

+2

Ich beobachte dieses ungewöhnliche Verhalten nicht mit xts 0.10-0 – FXQuantTrader

Antwort

0

Ich glaube, ich habe das Problem gefunden. Ich versuche, XTS-Objekte eine Beschriftungsfunktion hinzuzufügen, die dem in Hmisc nachempfunden ist. Dabei hatte ich eine Funktion für [.xts definiert. Es hat anfangs funktioniert, aber dann habe ich einige Effizienzänderungen vorgenommen. Einer von ihnen hat die Funktion gebrochen.

Entschuldigung für etwaige Unannehmlichkeiten.

+0

Ich würde interessiert sein, Ihren Anwendungsfall zu kennen. Es könnte eine Möglichkeit geben, das zu tun, was Sie wollen, ohne '[. Auch wenn es nicht ist, denken Sie daran, dass das "x" in xts für "eXtensible" steht. Man könnte also xts ableiten und einfach die '.xts'-Funktion überschreiben, um das zu tun, was man will. –

+0

Ich beginne ein Forschungsprojekt mit Zeitreihenanalysen mit verschiedenen Arten von Zeitreihen - makroökonomischen Aggregaten, Preisindizes usw. - aus unterschiedlichen Quellen. Um die Variablen im Auge zu behalten, füge ich Labels und Einheiten in xts Objekte sowohl auf Objekt- als auch auf Variablenebene ein. Alle werden als xtsAttributes gespeichert. Auf der Objektebene enthalten sie skalare "label" - und "units" -Elemente, die auf das gesamte xts-Objekt angewendet werden; auf Variablenebene enthalten sie Listen von Variablennamen (var.labels) und Einheiten (unit.labels) – Gnosos

Verwandte Themen