variable scope
Passing variables to functions "by reference" is possible, if you must, but not recommended. Some functions already do this, for example fix(myfunc) will alter the value of `myfunc' in the present environment. If you can stand a piece of admittedly avuncular advice, I'd say look again at your problem and see if you really do want to do this. With a programming language it is usually the case that you are better off understanding and working within its logic and philosophy rather than trying to make it behave in a way that you think it should. If you still want to go through with this, you might want to look at Thomas Lumley's article on Macros in the Programmer's Niche section of R-news a couple of issues ago. Using call by reference is very similar to using macros instead of true functions. I personally think it is both dangerous and unnecessary, but Thomas points out that if you must it can be done reasonably elegantly. Sigh. Bill Venables.
-----Original Message-----
From: VBMorozov at lbl.gov [mailto:VBMorozov at lbl.gov]
Sent: Saturday, August 03, 2002 12:39 PM
To: r-help at stat.math.ethz.ch
Subject: [R] variable scope
Dear R-guRus:
I would like to pass variables to a function in R in "by reference",
e.g Fortran style.
For example, suppose I have the following code
x<-c(1:10)
y<-1
MyFunc<-function(x,y) {y<-sum(x); return(NULL)}
MyFunc(x,y)
print(y)
in this case print(y) will produce "1" instead of 55 (which is sum(x)) -
how do I make sure that afte the function is run, y remembers the
value that was given to it within a function ????
Of course I could always do something like
MyFunc<-fuction(x) {return(sum(x)}; y<-MyFunc(x)
but in the real life I have a much more complex problem so I really
would like to be able to pass variables to functions by reference.
Thank you very much,
Vladimir
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-
r-help mailing list -- Read
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._