То, что вы предложили, является представлением LaTeX. Та же матрица в R будет
M <- matrix(1:60, ncol=6) # a 10 x 6 matrix
Попробуйте использовать abind
из пакета "abind":
require(abind)
abind( M[1:5,], M[6:10, ], along=3 )
#-----------------
, , 1
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 11 21 31 41 51
[2,] 2 12 22 32 42 52
[3,] 3 13 23 33 43 53
[4,] 4 14 24 34 44 54
[5,] 5 15 25 35 45 55
, , 2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 6 16 26 36 46 56
[2,] 7 17 27 37 47 57
[3,] 8 18 28 38 48 58
[4,] 9 19 29 39 49 59
[5,] 10 20 30 40 50 60
Если вы не хотите использовать внешний пакет и согласитесь на транспонированную версию каждого среза, то сначала перенесите, а затем измените размер. Вы не можете транспонировать массив, однако есть функция aperm
, на которую вы можете посмотреть:
Mt <- t(M)
dim(Mt) <- c(6, 5, 2)
Mt
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 11 12 13 14 15
[3,] 21 22 23 24 25
[4,] 31 32 33 34 35
[5,] 41 42 43 44 45
[6,] 51 52 53 54 55
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] 6 7 8 9 10
[2,] 16 17 18 19 20
[3,] 26 27 28 29 30
[4,] 36 37 38 39 40
[5,] 46 47 48 49 50
[6,] 56 57 58 59 60
Раствор для спермы:
> aperm(Mt, c(2,1,3))
, , 1
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 11 21 31 41 51
[2,] 2 12 22 32 42 52
[3,] 3 13 23 33 43 53
[4,] 4 14 24 34 44 54
[5,] 5 15 25 35 45 55
, , 2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 6 16 26 36 46 56
[2,] 7 17 27 37 47 57
[3,] 8 18 28 38 48 58
[4,] 9 19 29 39 49 59
[5,] 10 20 30 40 50 60