在R中传递省略号(...)作为参数意味着什么?

时间:2013-07-16 23:59:21

标签: r

我已经看到了省略号的几个相关问题,但我仍然不确定将“...”作为参数传递是什么意思。我对R完全是新手,但我想了解以下内容:

forest <- randomForest(x = train.x, y = train.y, ...)

1 个答案:

答案 0 :(得分:16)

...参数的典型用法是当函数说f在内部调用函数g并使用...将参数传递给g而没有明确地将所有这些参数列为自己的形式参数。人们可能想要这样做,例如,当g具有许多可选参数时,用户可能需要或可能不需要这些参数。然后,不是将所有这些可选参数添加到f并增加复杂性,而是可以简单地使用...

的含义,正如您所问,函数f将忽略这些并将其传递给g。有趣的是,...甚至可能包含g不想要的参数,它也会忽略它们,例如h如果它还需要使用...。但是也要这样看post进行详细讨论。

例如考虑:

f <- function (x, y, ...) {
  # do something with x
  # do something with y
  g(...) # g will use what it needs
  h(...) # h will use that it needs
  # do more stuff and exit
}

另外,请参阅intro-R manual中的par示例。

此外,这个post显示如果正在编写一个使用它的函数,如何解压 ...