当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R outer 数组的外积


R语言 outer 位于 base 包(package)。

说明

数组 XY 的外积是数组 A,其维度为 c(dim(X), dim(Y)),其中元素 A[c(arrayindex.x, arrayindex.y)] = FUN(X[arrayindex.x], Y[arrayindex.y], ...)

用法

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

参数

X, Y

函数 FUN 的第一个和第二个参数。通常是向量或数组。

FUN

在外部产品上使用的函数,通过 match.fun 找到(特殊情况 "*" 除外)。

...

要传递给 FUN 的可选参数。

细节

XY 必须是 FUN 的合适参数。在调用 FUN 之前,每个值都将由 rep 扩展,以延长 XY 的长度的乘积。

使用这两个扩展向量作为参数(加上 ... 中的任何参数)调用 FUN 。它必须是一个向量化函数(或一个函数的名称),需要至少两个参数并返回与第一个(和第二个)长度相同的值。

如果它们存在,XY 的 [dim] 名称将被复制到答案中,并分配一个维度,该维度是 XY 维度的串联(如果维度不存在,则为长度)存在)。

FUN = "*" 通过 as.vector(X) %*% t(as.vector(Y)) 作为特殊情况处理,并且仅适用于数值向量和数组。

%o% 是二元运算符,为 outer(x, y, "*") 提供包装器。

例子

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]

作者

Jonathan Rougier

参考

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

也可以看看

%*% 用于通常(内部)矩阵向量乘法; kronecker 基于outerVectorize 用于向量化非向量化函数。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Outer Product of Arrays。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。