Ryan Thompson - 1 year ago 82

R Question

When working with matrices in R, one can put them side-by-side or stack them top of each other using cbind and rbind, respectively. What is the equivalent function for stacking matrices or arrays in other dimensions?

For example, the following creates a pair of 2x2 matrices, each having 4 elements:

`x = cbind(1:2,3:4)`

y = cbind(5:6,7:8)

What is the code to combine them into a 2x2x2 array with 8 elements?

Answer Source

See the `abind`

package. If you want them to bind on a 3rd dimension, do this:

```
library(abind)
abind(x, y, along = 3)
```

See `?abind`

Also, `abind`

gives a lot more convenience, but for simple binding you can just manipulate the values directly, based on the default ordering:

```
array(c(x, y), dim = c(2, 2, 2))
```