如何泛化 mapply 以工作 "crosswisely"?

How to generalize mapply to work "crosswisely"?

Mapply 将二维函数应用于每个 m 维向量的第一个元素,然后应用于每个的第二个元素,依此类推。结果是一个 m 维向量。

例如

> mapply(sum, 1:5, 12:16)
[1] 13 15 17 19 21

现在,是否有直接替代 mapply 将函数 "crosswisely" 应用于每个第一个向量和每个第二个向量的分量?

结果将是一个 m^2 矩阵。

你可以试试outer

f1 <- function(x,y) x^2+x^y-3
outer(1:5, 12:16, f1)

类似于

t(Vectorize(function(x) f1(x,12:16))(1:5))