R 更改xts对象日期索引
我有两个股票回报的数据文件。我试图对这两个应用相同的函数,但其中一个出现了错误。我想找出导致错误的原因,所以我比较了两个xts对象的R 更改xts对象日期索引,r,date,xts,portfolio,R,Date,Xts,Portfolio,我有两个股票回报的数据文件。我试图对这两个应用相同的函数,但其中一个出现了错误。我想找出导致错误的原因,所以我比较了两个xts对象的str输出,唯一不同的一行是: Indexed by objects of class: [POSIXct,POSIXt] TZ: # this object errors Indexed by objects of class: [Date] TZ: GMT # this object works 是否有方法更改xts对象中日期的索引,以便str的输
str
输出,唯一不同的一行是:
Indexed by objects of class: [POSIXct,POSIXt] TZ: # this object errors
Indexed by objects of class: [Date] TZ: GMT # this object works
是否有方法更改xts对象中日期的索引,以便str
的输出返回:由类:[Date]TZ:GMT
的对象索引
我使用以下方法生成日期:seq(as.Date(“1963/07/01”)、as.Date(“2004/12/01”)、by=“1个月”、tzone=“GMT”)
一个可重复的例子:
library(xts)
library("PerformanceAnalytics")
load("https://dl.dropboxusercontent.com/u/22681355/data.Rdata")
data(edhec)
data2 <- as.xts(french1)
xts:::as.xts.data.frame
默认情况下,假定data.frame的行名应强制为POSIXct
对象/索引。如果要使用其他类,请通过dateFormat=
参数将其指定为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
xts:::as.xts.data.frame
默认情况下,假定data.frame的行名应强制为POSIXct
对象/索引。如果要使用其他类,请通过dateFormat=
参数将其指定为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
您能否提供一个和抛出错误的函数?如果你不能提供抛出错误的函数,你能至少告诉我们错误是什么吗?您当前的问题假设您知道错误的原因,这可能是错误的假设。请参阅我的编辑。现在有一个完整的可复制示例。通常,
是
函数返回逻辑,而是作为
函数强制对象。您的示例只有在可以运行代码的意义上才是可复制的。问题的顶部是str()
输出的两个片段,但不清楚检查了哪些对象。当您打算将编写为.xts
时,您可能编写了is.xts
,但对于该seq.Date()
结果,您可能会做哪些进一步的处理仍然是个谜。您能提供一个和抛出错误的函数吗?如果你不能提供抛出错误的函数,你能至少告诉我们错误是什么吗?您当前的问题假设您知道错误的原因,这可能是错误的假设。请参阅我的编辑。现在有一个完整的可复制示例。通常,是
函数返回逻辑,而是作为
函数强制对象。您的示例只有在可以运行代码的意义上才是可复制的。问题的顶部是str()
输出的两个片段,但不清楚检查了哪些对象。当您打算将as.xts
写入时,您可能编写了is.xts
,但对于该seq.Date()
result.奇怪的是,如果没有as.xts()中的Date参数,则在添加dateformat=“Date”之后会出现错误它运行时没有错误。奇怪的是,如果没有as.xts()中的date参数,我会得到一个错误,但在添加dateformat=“date”后,它运行时没有错误。
> data2 <- as.xts(french1)
> Return.portfolio(data2["1976",1:10],rebalance_on="months")
portfolio.returns
1976-01-31 0.3980000
1976-02-29 0.1017811
1976-03-31 1.3408273
1976-04-30 -11.7395151
1976-05-31 8.0197492
1976-06-30 -0.2550812
1976-07-31 2.5732207
1976-08-31 1.3784635
1976-09-30 -1.6859705
1976-10-31 -21.4958124
1976-11-30 5.6863828
1976-12-31 -7.8071966
Warning message:
In Return.portfolio(data2["1976", 1:10], rebalance_on = "months") :
weighting vector is null, calulating an equal weighted portfolio