我有一个非常简单的代码,它产生:

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/

10-12 20:32