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@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.
______________________________________________
R-help@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.