Transpose an array by permuting its dimensions and optionally resizing it.

```
aperm(a, perm, …)
# S3 method for default
aperm(a, perm = NULL, resize = TRUE, …)
# S3 method for table
aperm(a, perm = NULL, resize = TRUE, keep.class = TRUE, …)
```

a

the array to be transposed.

perm

the subscript permutation vector, usually a permutation of
the integers `1:n`

, where `n`

is the number of dimensions
of `a`

. When `a`

has named dimnames, it can be a
character vector of length `n`

giving a permutation of those
names. The default (used whenever `perm`

has zero length) is to
reverse the order of the dimensions.

resize

a flag indicating whether the vector should be
resized as well as having its elements reordered (default `TRUE`

).

keep.class

logical indicating if the result should be of the
same class as `a`

.

…

potential further arguments of methods.

A transposed version of array `a`

, with subscripts permuted as
indicated by the array `perm`

. If `resize`

is `TRUE`

,
the array is reshaped as well as having its elements permuted, the
`dimnames`

are also permuted; if `resize = FALSE`

then the
returned object has the same dimensions as `a`

, and the dimnames
are dropped. In each case other attributes are copied from `a`

.

The function `t`

provides a faster and more convenient way of
transposing matrices.

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

`t`

, to transpose matrices.

# NOT RUN { # interchange the first two subscripts on a 3-way array x x <- array(1:24, 2:4) xt <- aperm(x, c(2,1,3)) stopifnot(t(xt[,,2]) == x[,,2], t(xt[,,3]) == x[,,3], t(xt[,,4]) == x[,,4]) UCB <- aperm(UCBAdmissions, c(2,1,3)) UCB[1,,] summary(UCB) # UCB is still a contingency table # }