我想平均在一組三維數組中的圖元或頁面組中的元素(我的名字爲第三維)。按組的平均數組元素
下面是一個名爲my.array
的示例數組。在這個例子中,我想平均3張紙的組中的元素給desired.result
。我的實際數據是數十張數組。
我懷疑有一個類似apply
的函數可以進行平均。但是,我不熟悉在數組上使用這些函數。感謝您的任何建議。
i <- 4
j <- 4
k <- 6
my.array <- array(0, c(i,j,k))
my.array[1:2,1:2,1] <- 1
my.array[1:2,3:4,1] <- 2
my.array[3:4,1:2,1] <- 3
my.array[3:4,3:4,1] <- 4
my.array[1:2,1:2,2] <- 10
my.array[1:2,3:4,2] <- 20
my.array[3:4,1:2,2] <- 30
my.array[3:4,3:4,2] <- 40
my.array[1:2,1:2,3] <- 100
my.array[1:2,3:4,3] <- 200
my.array[3:4,1:2,3] <- 300
my.array[3:4,3:4,3] <- 400
my.array[1:2,1:2,4] <- -4
my.array[1:2,3:4,4] <- -3
my.array[3:4,1:2,4] <- -2
my.array[3:4,3:4,4] <- -1
my.array[1:2,1:2,5] <- 80
my.array[1:2,3:4,5] <- 70
my.array[3:4,1:2,5] <- 60
my.array[3:4,3:4,5] <- 50
my.array[1:2,1:2,6] <- 111
my.array[1:2,3:4,6] <- 222
my.array[3:4,1:2,6] <- 333
my.array[3:4,3:4,6] <- 444
desired.result <- array(0, c(i,j,k/3))
desired.result[1:2,1:2,1] <- 37 # 111/3
desired.result[1:2,3:4,1] <- 74 # 222/3
desired.result[3:4,1:2,1] <- 111 # 333/3
desired.result[3:4,3:4,1] <- 148 # 444/3
desired.result[1:2,1:2,2] <- 62.33333 # (111 + 80 + -4)/3
desired.result[1:2,3:4,2] <- 96.33333 # (222 + 70 + -3)/3
desired.result[3:4,1:2,2] <- 130.3333 # (333 + 60 + -2)/3
desired.result[3:4,3:4,2] <- 164.3333 # (444 + 50 + -1)/3
, , 1
[,1] [,2] [,3] [,4]
[1,] 37 37 74 74
[2,] 37 37 74 74
[3,] 111 111 148 148
[4,] 111 111 148 148
, , 2
[,1] [,2] [,3] [,4]
[1,] 62.33333 62.33333 96.33333 96.33333
[2,] 62.33333 62.33333 96.33333 96.33333
[3,] 130.33330 130.33330 164.33330 164.33330
[4,] 130.33330 130.33330 164.33330 164.33330
此代碼接近:
t(sapply(seq(1,2), function(i) {apply(my.array[,,(3*(i-1)+1):(3*i)], c(1,2), mean)}))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
[1,] 37.00000 37.00000 111.0000 111.0000 37.00000 37.00000 111.0000 111.0000 74.00000 74.00000 148.0000 148.0000 74.00000 74.00000 148.0000 148.0000
[2,] 62.33333 62.33333 130.3333 130.3333 62.33333 62.33333 130.3333 130.3333 96.33333 96.33333 164.3333 164.3333 96.33333 96.33333 164.3333 164.3333
我更喜歡在基R.溶液