Does anyone know a neat / efficient way to replace diagonal elements in an array, similar to using diag(x) <- value for a matrix? In other words, something like this:
> m<-array(1:27,c(3,3,3)) > for(k in 1:3){ + diag(m[,,k])<-5 + } > m , , 1 [,1] [,2] [,3] [1,] 5 4 7 [2,] 2 5 8 [3,] 3 6 5 , , 2 [,1] [,2] [,3] [1,] 5 13 16 [2,] 11 5 17 [3,] 12 15 5 , , 3 [,1] [,2] [,3] [1,] 5 22 25 [2,] 20 5 26 [3,] 21 24 5
but without using a for loop (my arrays are quite large, and this manipulation will already be in the loop).
Many thanks.
source share