我有一个非常简单的代码,它产生:
afun <- function(a) {
return(bfun(...))
}
bfun <- function(...) {
return(a + 1)
}
> afun(1)
Error in afun(1) : '...' used in an incorrect context
但是R在这里不喜欢什么?
最佳答案
在您的函数afun
中:
afun <- function(a) {
return(bfun(...))
}
...
就像其他参数一样,只是一个参数(没有默认值)。这并不意味着“自动吸收传递给父函数的所有参数”。就像您已将bfun
定义为:bfun <- function(b) {
return(b + 1)
}
然后尝试做:
afun <- function(a) {
return(bfun(b))
}
为了将
a
传递给bfun
,您要么必须自己使用match.call
这样的参数来收集该参数,要么必须对其进行硬编码(例如return(bfun(a))
),或者必须将...
用作参数(以及唯一的参数) )到afun
。通常,
...
用于将其他参数传递给后续函数。关于r - 嵌套函数: Error "' .中的椭圆展开。 .' used in an incorrect context",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20573181/