如何将工作概括为工作"横向"?

时间:2015-03-09 06:55:32

标签: r function vectorization apply mapply

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

例如

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

现在,是否存在一个直接替代mapply的函数,它将“交叉”函数应用于第一个向量和每个第二个向量的组件?

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

1 个答案:

答案 0 :(得分:3)

您可以尝试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))