在3D数组中添加列或行

Eko*_*Eko 8 arrays r

我有一个像这样的数组:

, , 1

     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

, , 2

     [,1] [,2] [,3]
[1,]   10   13   16
[2,]   11   14   17
[3,]   12   15   18

, , 3

     [,1] [,2] [,3]
[1,]   19   22   25
[2,]   20   23   26
[3,]   21   24   27
Run Code Online (Sandbox Code Playgroud)

我想为每个组件添加一个列,填充0,最后得到这个:

, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    4    7   0
[2,]    2    5    8   0
[3,]    3    6    9   0

, , 2

     [,1] [,2] [,3] [,4]
[1,]   10   13   16   0
[2,]   11   14   17   0
[3,]   12   15   18   0

, , 3

     [,1] [,2] [,3] [,4]
[1,]   19   22   25   0
[2,]   20   23   26   0
[3,]   21   24   27   0
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来使用R?

flo*_*del 7

这是一种方式:

library(abind)
abind(x, array(0, replace(dim(x), 2, 1)), along = 2)
Run Code Online (Sandbox Code Playgroud)

还有一个:

aperm(apply(x, c(1, 3), c, 0), c(2, 1, 3))
Run Code Online (Sandbox Code Playgroud)