[R] scoping rules
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Sep 9 19:57:55 CEST 2004
On Thu, 9 Sep 2004 12:01:56 -0400 , Whit Armstrong
<Whit.Armstrong at tudor.com> wrote :
>Can someone help me with this simple example?
>
>sq <- function() {
> y <- x^2
> y
>}
>
>myfunc <- function() {
> x <- 10
> sq()
>}
>
>myfunc()
>
>
>executing the above in R yields:
>> myfunc()
>Error in sq() : Object "x" not found
>
>I understand that R's scoping rules cause it to look for "x" in the
>environment in which "sq" was defined (the global environment in this case).
>But in this case "x" is defined inside the calling function, not the
>environment in which "sq" was defined.
>
>Is there a way to tell R to look in the calling function for "x" ?
The easiest (and best) is to pass x as an argument to sq.
Duncan Murdoch
More information about the R-help
mailing list