Outer Product of Arrays
The outer product of the arrays
Y is the array
A with dimension
c(dim(X), dim(Y)) where element
= FUN(X[arrayindex.x], Y[arrayindex.y], ...).
outer(X, Y, FUN = "*", ...) X %o% Y
- X, Y
- First and second arguments for function
FUN. Typically a vector or array.
- a function to use on the outer products, found via
match.fun(except for the special case
- optional arguments to be passed to
Y must be suitable arguments for
will be extended by
rep to length the products of the
FUN is called.
FUN is called with these two extended vectors as arguments
(plus any arguments in
...). It must be a vectorized
function (or the name of one) expecting at least two arguments and
returning a value with the same length as the first (and the second).
Where they exist, the [dim]names of
Y will be
copied to the answer, and a dimension assigned which is the
concatenation of the dimensions of
Y (or lengths
if dimensions do not exist).
FUN = "*" is handled as a special case via
as.vector(X) %*% t(as.vector(Y)), and is intended only for
numeric vectors and arrays.
%o% is binary operator providing a wrapper for
outer(x, y, "*").
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
x <- 1:9; names(x) <- x # Multiplication & Power Tables x %o% x y <- 2:8; names(y) <- paste(y,":", sep = "") outer(y, x, "^") outer(month.abb, 1999:2003, FUN = "paste") ## three way multiplication table: x %o% x %o% y[1:3]