crossprod {base}R Documentation

Matrix Crossproduct

Description

Given matrices x and y as arguments, return a matrix cross-product. This is formally equivalent to (but faster than) the call t(x) %*% y (crossprod) or x %*% t(y) (tcrossprod).

Usage

crossprod(x, y = NULL)

tcrossprod(x, y = NULL)

Arguments

x, y matrices: y = NULL is taken to be the same matrix as x. Vectors are promoted to single-column matrices.

Note

When x or y are not matrices, they are treated as column or row matrices, but their names are usually not promoted to dimnames. Hence, currently, the last example has empty dimnames.

References

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

See Also

%*% and outer product %o%.

Examples

(z <- crossprod(1:4))    # = sum(1 + 2^2 + 3^2 + 4^2)
drop(z)                  # scalar
x <- 1:4; names(x) <- letters[1:4]; x
tcrossprod(as.matrix(x)) # is
identical(tcrossprod(as.matrix(x)),
          crossprod(t(x)))
tcrossprod(x)            # no dimnames

[Package base version 2.5.0 Index]