如何将变量的当前值传递给函数范围?

时间:2012-11-22 02:43:07

标签: r

如何使用变量的当前值构建函数?

以下是一个例子:

x <- 2
f <- function() { return(x) }
x <- 3
f() # evaluates to 3 as expected, but I'd like it to evaluate to 2.

1 个答案:

答案 0 :(得分:3)

这是R的词汇范围派上用场:

MakeF <- function() {
  x <- x
  f <- function() {
    return(x)
  }
  return(f)
}

x <- 2
f <- MakeF()
x <- 3

给出了:

> f()
[1] 2