You can use 'local'

> counter()
> # create a function with a 'local static' variable
> counter <- local({
+     i <- 0
+     function() {
+         i <<- i + 1
+         i
+     }
+ })
>
> counter()
[1] 1
> counter()
[1] 2
> i <- 42  # change 'i' at this level
> counter()  # has not effect on the 'counter' i which is local
[1] 3
>


On Thu, Apr 16, 2009 at 8:46 AM, ivo welch <ivo...@gmail.com> wrote:
> dear R experts:
>
> does R have "static" variables that are local to functions?  I know
> that they are usually better avoided (although they are better than
> globals).
>
> However, I would like to have a function print how often it was
> invoked when it is invoked, or at least print its name only once to
> STDOUT when it is invoked many times.
>
> possible without <<- ?
>
> sincerely,
>
> /iaw
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?

______________________________________________
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.

Reply via email to