我想将未知数量的参数传递给两个函数。这些函数在定义时可能具有已定义数量的参数,但如果我需要更改它们,则可能会更改。
更具体地说,我有两个函数 f1 和 f2:
f1 <- function(a, b) { (some code) }
f2 <- function(x, y, z) { (some code) }
这里 f1 和 f2 分别有两个和三个参数,但是(例如)我可能需要使用其他函数 f3 而不是 f2:
f3 <- function(s, ...) { (some code) }
f3 的参数数量可能与 f2 不同。
我还有一个函数 f,它将以 f1 和 f2 作为参数,并且还将以 f1 和 f2 本身作为参数:
f <- function(arg1, arg2, f1, f2, (arguments of f1), (arguments of f2)) { (some code) }
但我不知道如何将未知数量的参数传递给 f1 和 f2。
我不知道是否可以使用
...
,因为我不知道如何将...
分成f1的参数和f2的参数。我也不能使用 nargs
,因为它只计算 ...
中的参数数量,但我一开始仍然不知道如何分离它们。也许有一种方法可以让我拥有多个...
,就像这样:
f <- function(f1, f1, ...1, ...2) {
some code using
f1(...1)
and
f2(...2)
}
?
如果您可以将
f1
和 f2
的参数作为列表传递到 f
中(我不知道这是否适合您将如何使用 f
),您可以执行以下操作:
f <- function(f1, f2, f1.args, f2.args) {
some code using
do.call(f1, f1.args)
and
do.call(f2, f2.args)
}
你会这样称呼它
f(f1, f2, list(a, b), list(x, y, z))