更改xts对象日期索引

时间:2015-07-09 19:27:02

标签: r date xts portfolio

我有两个带有股票回报的数据文件。我正在尝试对两者应用相同的功能,但我得到其中一个错误。我想找出导致错误的原因,因此我比较了两个xts对象的Indexed by objects of class: [POSIXct,POSIXt] TZ: # this object errors Indexed by objects of class: [Date] TZ: GMT # this object works 输出,唯一不同的是:

str

有没有办法更改xts对象中日期的索引,以便Indexed by objects of class: [Date] TZ: GMT的输出返回:seq(as.Date("1963/07/01"), as.Date("2004/12/01"), by = "1 month",tzone="GMT")

我使用library(xts) library("PerformanceAnalytics") load("https://dl.dropboxusercontent.com/u/22681355/data.Rdata") data(edhec) data2 <- as.xts(french1) 生成了日期。

可重现的例子:

Return.portfolio()

我要调用的函数是rebalance_on="months",其参数为Return.portfolio(edhec["1997",1:10],rebalance_on="months") #this works Return.portfolio(data2["1976",1:10],rebalance_on="months") #this does not work

{{1}}

1 个答案:

答案 0 :(得分:0)

默认情况下,

xts:::as.xts.data.frame假定您应将data.frame的rownames强制转换为POSIXct对象/索引。如果要使用其他类,请通过dateFormat=的{​​{1}}参数指定它。

as.xts

虽然我不相信这是你遇到的任何错误的原因,因为没有指定> data2 <- as.xts(french1, dateFormat="Date") > str(data2) An ‘xts’ object on 1963-06-30/2004-11-30 containing: Data: num [1:498, 1:10] -0.47 4.87 -1.68 2.66 -1.13 2.83 0.79 1.85 3.08 -0.45 ... - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:10] "NoDur" "Durbl" "Manuf" "Enrgy" ... Indexed by objects of class: [Date] TZ: UTC xts Attributes: NULL 我没有收到错误。

dateFormat="Date"