R不一致的参数

时间:2016-04-25 16:49:40

标签: r loops matrix-multiplication

我很抱歉问过一千次被问过的问题,但我似乎还没有能够解决我的问题。

我正在尝试运行这个双循环:

rho=matrix(0,12,1)

for (i in 1:k){
  for (j in 1:n-k){
    temp=((1/(sigma^2))*(1/(n-i)))*((as.matrix(vR)[j,]-mean)%*%(as.matrix(vR)[i+j,]-mean))
    rho[i,]=temp
  }
}    

我一直收到错误:

  

错误(as.matrix(vR)[j,] - mean)%*%(as.matrix(vR)[i + j,] - mean):         不一致的论点

另外,我的公式是:

(1/sigma^2) * (1/(t-k)) * sum[(vR(t)-mean)*(vR(t+k)-mean)]

总和是"大sigma"从t = 1到T-k

是否可以像我一样运行它?

1 个答案:

答案 0 :(得分:2)

有一种更安全的方法来处理向量的“矩阵乘法”,即crossprod函数。此外,我认为您的错误实际上可能主要源于seq函数的运算符优先级,“ - ”在内部循环索引设置中的“ - ”函数:

for (i in 1:k){
 for (j in 1:(n-k)){  # note inner parentheses, safer to always use with "("
temp=((1/(sigma^2))*(1/(n-i)))*crossprod(vR[j,]-mean,vR[i+j,]-mean)
rho[i,]=temp
 }
}