【发布时间】:2016-06-11 11:54:05
【问题描述】:
我有一个矩阵a,类(a):“xts”“zoo”
EUSA.2 EUSA.3 EUSA.4 EUSA.5
2014-06-11 0.3140 0.4016 0.5230 0.6910
2014-06-12 0.3190 0.3965 0.5347 0.6950
2014-06-13 0.3180 0.3903 0.5320 0.6980
2014-06-16 0.3255 0.4129 0.5546 0.7267
2014-06-17 0.3180 0.4017 0.5280 0.6950
2014-06-18 0.3210 0.3922 0.5234 0.6921
此对象有 4 列,我正在尝试计算此对象中每两对之间的差异,预计“xts”“动物园”类中的另一个对象有 16 列。我使用了以下内容:
df<-outer(colnames(a),colnames(a),paste,sep="_")
b<-outer(1:ncol(a),1:ncol(a),function(x,y) (a[,x]-a[,y]))
colnames(b)<-df
并收到错误消息:
NextMethod() 中的错误:
dims [产品 121] 与对象的长度不匹配 [54087] 另外:警告消息:
在dim<-.zoo(*tmp*, value = c(dX, dY)) 中:
设置此尺寸可能会导致无效的动物园对象
有什么建议吗?
【问题讨论】:
-
请提供一个可重现的例子
-
还有一个问题,因为
a[,x]- a[,y]不是一个数字。它等于'a'的nrow。输出可以做成list,即b <- outer(1:ncol(a),1:ncol(a), FUN= Vectorize(function(i,j) list(a[,i]-a[,j]))),然后试试do.call(cbind, b)
标签: r time-series xts zoo