使用purrr多个具有多个参数的函数

问题描述 投票:1回答:1

我能够实现一种方法来将参数组合迭代到单个函数:

a <- seq(1, 5, 1)
b <- rep(10, 15, 1)

foo <- function(a, b){ a + b}
foo2 <- function(a, b) {a * b}

result <- invoke_map_dbl(foo, cross2(a, b))

但是,我无法通过两个函数迭代这些参数。我想这样做:

result <- invoke_map_dbl(list(foo, foo2), cross2(a,b))

可能吗?

r function purrr
1个回答
3
投票

问题可能是试图强制列表输出到dbl。你不需要......

invoke_map(list(foo,foo2), a=a, b=b)

[[1]]
[1] 11 12 13 14 15

[[2]]
[1] 10 20 30 40 50

你可以unlist得到一个矢量,如果这是你想要的。

再看一遍,我注意到你只是定义了b=10,看起来不对。所以这可能不符合您的要求,但您需要更具体地回答您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.