outer
位于 base
包(package)。 说明
数组 X
和 Y
的外积是数组 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 |
在外部产品上使用的函数,通过 |
... |
要传递给 |
细节
X
和 Y
必须是 FUN
的合适参数。在调用 FUN
之前,每个值都将由 rep
扩展,以延长 X
和 Y
的长度的乘积。
使用这两个扩展向量作为参数(加上 ...
中的任何参数)调用 FUN
。它必须是一个向量化函数(或一个函数的名称),需要至少两个参数并返回与第一个(和第二个)长度相同的值。
如果它们存在,X
和 Y
的 [dim] 名称将被复制到答案中,并分配一个维度,该维度是 X
和 Y
维度的串联(如果维度不存在,则为长度)存在)。
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
基于outer
; Vectorize
用于向量化非向量化函数。
相关用法
- R options 选项设置
- R on.exit 函数退出代码
- R octmode 以八进制显示的整数
- R order 排序排列
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
- R search 给出 R 对象的搜索路径
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Outer Product of Arrays。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。