R功能' ...'论证范围

时间:2017-07-22 01:23:21

标签: r function scope parameter-passing

通过source()

尝试此代码
f1 <- function(x, ...){
  print(y)
}

f1(x = 1, y = 2)

或此代码通过source()

f1 <- function(x, ...){
  y <- 2
  f2(x, y = y, ...)
}

f2 <- function(x, ...){
  print(y)
}

f1(x = 1)

出现此错误

Error in print(y) : object 'y' not found

我想&#39; ...&#39;论证来自全球环境?

1 个答案:

答案 0 :(得分:0)

你应该像你一样在你的函数中调用y

f1 <- function(x, ...){
l <- list(...)
if(!is.null(l$y)) print(l$y)
}
f1(x = 1, y=2)