forkusam wrote:
Hi,
can someone please help me.
I will give a simple example of my problem. p <- function()
{
i <- 1
sr <- function(){
i<-i+3
i<- sqrt(i)
}
cat(i) }
This is just an example. My main problem is defining
i like a global variable which I can use in the sub-
and main functions without any complicated switches. Thanks in advance.
cilver

Within the function p(), it should "just work". Try this slight variation of your example:


p <- function()
{
  i <- 1
  sr <- function(){
    i<-i+3
    i<- sqrt(i)
    i #explicitly return the newly calculated value
  }
  cat("sr() returned ",sr(),"\n")
  #now check if i was actually modified outside sr()
  cat("i = ",i,"\n")

}

When I load this into R...

> p()
sr() returned  2
i =  1

note that i is not visible outside the function p(). It disappears when p() exits.

> i
Error: Object "i" not found

The internal function variables being available to sub-fuctions is an example of "lexical scoping", and it's one of the things that makes R so nice to work with. Try demo(scoping) for a very interesting use of lexical scoping.

Cheers

Jason

--
Indigo Industrial Controls Ltd.
http://www.indigoindustrial.co.nz
64-21-343-545
[EMAIL PROTECTED]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to