Mapply将二维函数应用于每个m维向量的第一个元素,然后应用于每个元素的第二个元素等。结果是一个m维向量。
例如
> mapply(sum, 1:5, 12:16)
[1] 13 15 17 19 21
现在,是否存在一个直接替代mapply的函数,它将“交叉”函数应用于第一个向量和每个第二个向量的组件?
结果将是一个m ^ 2矩阵。
答案 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))