[R] Global variables
Duncan Murdoch
murdoch.duncan at gmail.com
Mon May 2 15:43:32 CEST 2011
On 02/05/2011 7:19 AM, abhagwat wrote:
> Well, what would be really helpful is to restrict the scope of all
> non-function variables, but keep a global for scope of all function
> variables. Then, you still have access to all loaded functions, but you
> don't mix up variables.
>
> How would one do that?
You can't without low level modifications. Before R has done the
lookup, it doesn't know if an object is a function or not. It can guess
by usage, e.g. it can recognize that "print" should be a function in
print(1) and it will ignore non-functions named "print", but it is very
common in R code to do things like
fn <- print
fn(1)
and that would fail. But if you want to experiment with the change, you
can, because R is open source. I doubt if you'll get much help unless
you give a really convincing argument (on the R-devel list, not on this
list) why to make the change.
Duncan Murdoch
> Adi
>
>
> > Is there a way I can prevent global variables to be visible within my
> > functions?
>
> Yes, but you probably shouldn't. You would do it by setting the
> environment of the function to something that doesn't have the global
> environment as a parent, or grandparent, etc. The only common examples
> of that are baseenv() and emptyenv(). For example,
>
> x<- 1
> f<- function() print(x)
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Global-variables-tp3178242p3489796.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list