2017-03-07 72 views
0

請考慮以下事項。xts對象在子集化時丟失xts類

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) 

前兩個類的語句將導致:

[1] "xts" "zoo" 

但在第三結果:

[1] "zoo" 

爲什麼?這是正常還是錯誤?什麼是防止它並保留第三個對象的xts類的最好方法?

+2

我不會觀察到這種不尋常的行爲與xts 0.10-0 – FXQuantTrader

回答

0

我想我發現了這個問題。我試圖在Hmisc之後添加一個標記功能,以模擬xts對象。這樣做,我已經爲[.xts定義了一個函數。它起初有效,但後來我做了一些效率改變。其中一個打破了功能。

不便之處,敬請原諒。

+0

我很想知道你的用例。可能有辦法做到你想要的而不覆蓋'[.xts'。即使沒有,請記住xt中的「x」代表「eXtensible」。所以你可以繼承xts並重寫'[.xts''來完成你想要的功能。 –

+0

我開始了一個涉及時間序列分析的研究項目,其中包含幾種類型的時間序列 - 宏觀經濟總量,價格指數等 - 來自不同的來源。爲了跟蹤變量,我將標籤和單位合併到對象和變量級別的xts對象中。全部存儲爲xtsAttributes。在對象級別,它們包括應用於整個xts對象的標量「標籤」和「單位」項;在變量級別,它們包括變量名稱(var.labels)和單位(unit.labels) – Gnosos