[R] I really don't understand functions in R :-)
Thomas Lumley
tlumley at u.washington.edu
Fri Oct 20 18:49:20 CEST 2006
On Fri, 20 Oct 2006, Alberto Monteiro wrote:
> An example:
>
> n <- 3
> f <- function(x) x^n
> f(2)
> # [1] 8
> n <- 2
> f(2)
> # [1] 4
> f
> # function(x) x^n
>
> Ok, I know this is trivial, because function f is foverer bound
> to the variable n. But how can I _fix_ n when I define _f_, so
> that changing _n_ won't change the function f?
You need to make sure that n is stored inside the function. One approach
is to write a function that makes functions like f():
> make.f<-function(n) {function(x) x^n}
> n<-2
> f2<-make.f(n)
> n<-3
> f3<-make.f(n)
> f2(2)
[1] 4
> f3(2)
[1] 8
f2() and f3() each have a private copy of n from their enclosing
environment.
-thomas
More information about the R-help
mailing list