1

変数の現在の値を使用して関数を作成するにはどうすればよいですか?

次に例を示します。

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

1 に答える 1

3

ここで、Rの字句スコープが役立ちます。

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

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

これは次のようになります。

> f()
[1] 2
于 2012-11-22T02:47:55.200 に答える