Update: 01/02/2014

Key words: apermR ManualR Reference Index

aperm    Array Transposition


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


aperm(a, perm, ...)
## Default S3 method:
aperm(a, perm = NULL, resize = TRUE, ...)
## S3 method for class table
aperm(a, perm = NULL, resize = TRUE, keep.class = TRUE, ...)


athe array to be transposed.
permthe 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, itcan be a character vector of length n giving a permutation of those names. Thedefault (used whenever perm has zero length) is to reverse the order of the di-mensions.
resizea flag indicating whether the vector should be resized as well as having its elements reordered (default TRUE).
keep.classlogical 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 alsopermuted; if resize = FALSE then the returned object has the same dimensions as a, and thedimnames are dropped. In each case other attributes are copied from a.

The function t provides a faster and more convenient way of transposing matrices.


Jonathan Rougier, did the faster C implementation.


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

See Also

t, to transpose matrices.


# 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))
summary(UCB) # UCB is still a continency table

R Tutorial