我有一段非常简单的代码可以产生:
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在这里不喜欢什么?
在你的功能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.
通常,...用于将其他参数传递给后续函数.