R 性能分析协方差函数 merge.zoo 错误



我正在尝试计算数据帧上的协方差:

cov_test <- 协方差(返回,返回(

返回看起来~像这样:

A          B         C

1999/02/28 -0.018816 -0.011451 -0.026870

1999/3/31 0.004001 0.006580 0.002293

我得到的错误:

merge.zoo 中的错误(e1, e2, all = FALSE, retclass = NULL( : 序列不能与序列中的非唯一索引条目合并 另外:警告消息: 1: 在动物园(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: In zoo(rval, index(x([i]( : 如果"order.by"中的索引条目不唯一,则"zoo"对象的某些方法不起作用 6: In zoo(rval, index(x([i]( : 如果"order.by"中的索引条目不唯一,则"zoo"对象的某些方法不起作用

但是,当我在 R 中使用简单的 cov 函数时,它工作得很好......

谁能建议可能是什么问题?我检查了任何重复(返回(的重复行,它返回了 0。此外,从广义上讲,性能分析的协方差函数与简单的cov函数之间的主要区别是什么?谢谢。

这在带有性能分析 1.5.3 和 zoo 1.8-6 的 R 3.6.1 中对我有用:

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

也许您的动物园对象没有有序索引?在构造动物园对象时检查日期的格式。

最新更新