我正在尝试计算数据帧上的CoVariance:
cov_test <- CoVariance(退货,退货)
returns看起来像这样:
A B C
28/02/1999 -0.018816 -0.011451 -0.026870
31/03/1999 0.004001 0.006580 0.002293
我收到以下错误:
Merge.zoo错误(e1,e2,all = FALSE,retclass = NULL):序列不能与序列中的非唯一索引项合并另外:警告消息: 1: In zoo(cd,order.by = index(x),...):如果‘order.by’中的索引项不唯一,则用于“zoo”对象的某些方法将不起作用2: In zoo(rval,index(x)i):如果‘order.by’中的索引项不是唯一的,则用于“zoo”对象的一些方法不起作用3: In zoo(rval,index(x)i):如果‘order.by’中的索引项不是唯一的,则用于“zoo”对象的一些方法不起作用4: in zoo(cd,order.by= index(x),...):如果‘order.by’中的索引项不是唯一的,则用于“zoo”对象的一些方法不起作用5:在zoo(rval,index(x)i):如果‘order.by’中的索引项不唯一,则用于“zoo”对象的某些方法不起作用6: in zoo(rval,index(x)i):如果‘order.by’中的索引项不唯一,则用于“zoo”对象的某些方法不起作用
然而,当我在R中使用简单的cov函数时,它工作得很好…
有没有人能告诉我问题出在哪里?我使用anyDuplicated(返回)检查重复的行,结果返回0。另外,从广义上讲,PerformanceAnalytics的CoVariance函数和简单的覆盖函数之间的主要区别是什么?谢谢。
发布于 2019-10-15 16:02:57
这在R 3.6.1和PerformanceAnalytics 1.5.3和zoo 1.8-6中都适用:
library(PerformanceAnalytics)
returns <- data.frame(dt = as.Date(c('1999/02/28', '1999/03/31')), A=c(-0.018816, 0.004001), B=c(-0.011451, 0.006580), C=c(-0.02687, 0.002293))
z <- zoo(returns[,-1], returns[,1])
CoVariance(z,z)
A B C
Covariance: A 0.0001301539 1.028533e-04 0.0001663530
Covariance: B 0.0001028533 8.127924e-05 0.0001314595
Covariance: C 0.0001663530 1.314595e-04 0.0002126201
也许你的zoo对象没有一个有序的索引?在构造zoo对象时,请检查日期的格式。
https://stackoverflow.com/questions/58389046
复制相似问题