如何根据较小的矩阵获得大矩阵的SSE

时间:2016-05-23 09:45:04

标签: r

我有两个数据矩阵,如下所示

firstMatrix <- matrix(runif(10),500, 100)
   secondMatrix <- matrix(runif(10),500, 25)

我想从firstMatrix得到第二个矩阵的平方残差的和ROOT。这是我被困在

的地方
myopt3 <- function(firstMatrix,secondMatrix) {
resid2 <- (secondMatrix-firstMatrix[,i])^2
  sum(resid2)
}

我希望每一次,我都可以根据第二个矩阵得到firstMatrix的残差,这样可以根据第二列的一列获得firstMatrix每四列的残差。

例如

(secondMatrix[,1]-firstMatrix[,1])^2
(secondMatrix[,1]-firstMatrix[,2])^2
(secondMatrix[,1]-firstMatrix[,3])^2
(secondMatrix[,1]-firstMatrix[,4])^2

然后

(secondMatrix[,2]-firstMatrix[,5])^2
(secondMatrix[,2]-firstMatrix[,6])^2
(secondMatrix[,2]-firstMatrix[,7])^2
(secondMatrix[,2]-firstMatrix[,8])^2

然后 ...

直到结束并将所有值保存在另一个矩阵中 这就是我试图对这个示例数据进行的操作

1 个答案:

答案 0 :(得分:0)

this post,您可以复制secondMatrix的列:

secondMatrix = secondMatrix[ ,rep(1:ncol(secondMatrix), times = 4)]

然后你做平方差的总和:

diff = colSums((secondMatrix - firstMatrix)^2)