【发布时间】:2015-09-28 08:43:28
【问题描述】:
我有两个包含股票收益的数据文件。我正在尝试对两者应用相同的功能,但其中一个出现错误。我想找出导致错误的原因,所以我比较了两个 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 的输出返回: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
【问题讨论】:
-
你能提供一个reproducible example 和引发错误的函数吗?如果你不能提供抛出错误的函数,你至少能告诉我们错误是什么吗?您当前的问题假设您知道错误的原因,这可能是一个不正确的假设。
-
请看我的编辑。现在有一个完整的可重现的例子。
-
一般
is函数返回逻辑,而as函数作用于强制对象。 -
您的示例仅在可以运行代码的意义上是可重现的。您问题的顶部是
str()输出的两个片段,但尚不清楚正在检查哪些对象。当您打算写as.xts时,您可能写了is.xts,但您可能对seq.Date()结果进行了哪些进一步处理仍然是个谜。