如何将未知数量的参数传递给 R 中的多个函数

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

我想将未知数量的参数传递给两个函数。这些函数在定义时可能具有已定义数量的参数,但如果我需要更改它们,则可能会更改。

更具体地说,我有两个函数 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)

}

r function multiple-arguments
1个回答
0
投票

如果您可以将

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))
© www.soinside.com 2019 - 2024. All rights reserved.