嵌套函数中的省略号扩展:错误"'...'在不正确的上下文中使用"

Ant*_*nko 4 r function

我有一段非常简单的代码可以产生:

afun <- function(a) {
  return(bfun(...))
}
bfun <- function(...) {
  return(a + 1)
}

> afun(1)
Error in afun(1) : '...' used in an incorrect context
Run Code Online (Sandbox Code Playgroud)

但是R在这里不喜欢什么?

jor*_*ran 5

在你的功能afun:

afun <- function(a) {
  return(bfun(...))
}
Run Code Online (Sandbox Code Playgroud)

...只是一个参数(没有默认值),就像任何其他参数一样.它并不意味着"自动吸收传递给父函数的所有参数".就像你定义bfun为:

bfun <- function(b) {
  return(b + 1)
}
Run Code Online (Sandbox Code Playgroud)

然后试着做:

afun <- function(a) {
  return(bfun(b))
}
Run Code Online (Sandbox Code Playgroud)

为了a传递给bfun你,你要么必须自己使用类似的东西来收集那个论点match.call,要么你必须对它进行硬编码(例如return(bfun(a))),或者你必须使用它...作为参数(和唯一的参数)afun.

通常,...用于将其他参数传递给后续函数.