私は最初の部分を作成して、簡単な計算を繰り返さないようにしようとしています。しかし、私はの2番目の部分(2番目の部分は正しい答えを与える)によって計算されたのと同じ結果を得られないのはなぜだろうか?Rの行列の簡単なアルゴリズムを繰り返します。
最初の部分:
a = matrix(c(8,11,2, 6,8,4, 4,5,6, 2,8,8), nrow = 3)
nr = nrow(a)
nc = ncol(a)
mc = colMeans(a)
mr = rowMeans(a)
gr = mean(a)
(m = matrix(c(a[rep(1:nr, nr), rep(1:nc, each = nc)] - mr[rep(1:nr, nr)] -
mc[rep(1:nc, each = nc)] + gr), nrow = nr, ncol = nc)) ## This is NOT correct answer !!
第二部分:
a11 <- a[1, 1] - mr[1] - mc[1] + gr
a21 <- a[2, 1] - mr[2] - mc[1] + gr
a31 <- a[3, 1] - mr[3] - mc[1] + gr
a12 <- a[1, 2] - mr[1] - mc[2] + gr
a22 <- a[2, 2] - mr[2] - mc[2] + gr
a32 <- a[3, 2] - mr[3] - mc[2] + gr
a13 <- a[1, 3] - mr[1] - mc[3] + gr
a23 <- a[2, 3] - mr[2] - mc[3] + gr
a33 <- a[3, 3] - mr[3] - mc[3] + gr
a14 <- a[1, 4] - mr[1] - mc[4] + gr
a24 <- a[2, 4] - mr[2] - mc[4] + gr
a34 <- a[3, 4] - mr[3] - mc[4] + gr
g = paste0("a", rep(1:3, 3), rep(1:4, each = 3))
(m = matrix(c(mget(g)), nr = 3, ncol = 4)) ## This is the correct answer !!
@rnorouzianこれは 'a [。、。] - (mr [。] + mc [。])+ gr'と同じです。 – lmo