【发布时间】:2015-05-10 06:56:52
【问题描述】:
Mapply 对每个 m 维向量的第一个元素应用一个二维函数,然后对每个元素的第二个元素应用一个二维函数,以此类推。结果是一个 m 维向量。
例如
> mapply(sum, 1:5, 12:16)
[1] 13 15 17 19 21
现在,是否有直接替代 mapply 的方法,将函数“交叉”应用于第一个向量和第二个向量的每个分量?
结果将是一个 m^2 矩阵。
【问题讨论】:
-
你是说
outer(1:5, 12:16, '+')还是Vectorize(function(x) x+1:5)(12:16) -
对于 f(x,y)=x^2+x^y-3 或任何其他二维函数,外部如何工作?
-
试试
f1 <- function(x,y) x^2+x^y-3; outer(1:5, 12:16, f1) -
确实!谢谢你。您是否愿意写一个答案或者我们如何关闭它,否则?
标签: r function vectorization apply mapply