如何泛化 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))
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))