outer {base} | R Documentation

## Outer Product of Arrays

### Description

The outer product of the arrays `X` and `Y` is the array `A` with dimension `c(dim(X), dim(Y))` where element `A[i, j, .., k, l, ..] = FUN(X[i, j, ..], Y[k, l,..], ..)`.

### Usage

    outer(X, Y, FUN="*", ...)
    x %o% y

### Arguments

`X` | A vector or array.
`Y` | A vector or array.
`FUN` | a function to use on the outer products, it may be a quoted string.
`...` | optional arguments to be passed to `FUN`.

### Details

`FUN` must be a function (or the name of it) which expects at least two arguments and which operates elementwise on arrays.

Where they exist, the [dim]names of `X` and `Y` will be preserved.

`%o%` is an `.Alias` for `outer` (where `FUN` cannot be changed from `"*"`).

### Author(s)

Jonathan Rougier

### See Also

`matmult` for usual (inner) matrix vector multiplication; `kronecker` which is based on `outer`.

### Examples

    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]