我具有两个自变量foo(a,b)
的功能。作为此函数的输入,我将使用gtools库中combinations(10,2)
输出的每一行。我尝试使其与mapply
一起使用,并且对apply(combinations(10,2),1,foo)
确实抱有很高的期望,但是我尝试执行的所有操作均抛出错误“参数b”丢失,没有默认值” 。如何在不将组合(10,2)存储在内存中并将其分割的情况下纠正此问题?我怀疑我缺少Vectorize
的把戏。
对于一个简单的可复制示例,请使用beta(a,b)
代替foo(a,b)
。
我非常想不要要做的事情是这样的:
a<-combinations(10,2)
mapply(foo,a[,1],a[,2])
因为我不想将组合(10,2)存储在内存中。
答案 0 :(得分:1)
这里我们可以将do.call
与mapply
或Map
一起使用
do.call(mapply, c(FUN = foo, asplit(combinations(10, 2), 2)))
或与Map
(返回list
)
do.call(Map, c(f = foo, asplit(combinations(10, 2), 2)))
作为可重现的示例,可以使用beta
do.call(Map, c(f = beta, asplit(combinations(10, 2), 2)))