[R] Variable scope in functions - best practices
enricoschumann at yahoo.de
Sun Jul 24 18:46:10 CEST 2011
you could assign your "global variables" into an environment. Then make it
the environment of your function, and use the `<<-` operator (or 'assign').
> myData <- new.env()
> myData$i <- 0
> iPlusOne <- function() i <<- i+1
> environment(iPlusOne) <- myData
 "iPlusOne" "myData"
> -----Ursprüngliche Nachricht-----
> Von: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] Im Auftrag von Noah Silverman
> Gesendet: Sonntag, 24. Juli 2011 18:14
> An: r-help at r-project.org
> Betreff: [R] Variable scope in functions - best practices
> I'm working on coding some more complex things in R and have
> need to break much of the logic into functions.
> I have several "global" variables that I want to change with
> a given function. (The variable has a different value after
> the function is called.)
> In other languages like C, this is simple. However, in R, if
> a function changes a variable, that change only occurs in the
> frame of that function. So, when the function returns, the
> old value is still there.
> Of course, I could just have the function return the value,
> but some functions change 5-6 variables. So, I could have a
> function return a list, and then parse that list every time,
> but that seems like an excessive amount of overhead.
> (Especially as some functions may be called many many times.)
> How have some of you handled this? Is there a "best practices" way?
> Noah Silverman
> UCLA Department of Statistics
> 8117 Math Sciences Building
> Los Angeles, CA 90095
> R-help at r-project.org mailing list
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help