【问题标题】:Multiple a functions with multiple arguments with purrr多个带有多个参数的函数,带有 purrr
【发布时间】:2018-09-10 16:51:37
【问题描述】:

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

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】:

问题可能是试图将列表输出强制为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,这看起来是错误的。因此,这可能无法满足您的要求,但您需要更具体地提出问题。

【讨论】:

    猜你喜欢
    • 2019-09-10
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多