R 不一致的参数

R non-conformable arguments

我很抱歉问了一个已经被问过一千次的问题,但我似乎仍然无法解决我的问题。

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

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
  }
}    

我一直收到错误消息:

Error in (as.matrix(vR)[j, ] - mean) %*% (as.matrix(vR)[i + j, ] - mean) : non-conformable arguments

此外,我的公式是:

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

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

是否可以像我一样运行?

有一种更安全的方法来处理向量的 "matrix-multiplication",即 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
 }
}