On 3/25/2009 11:47 AM, Joerg Betzin wrote:
Dear R-helpers,

I try to use nested R-functions as follows:

You didn't use nested functions.  They would look like this:

 help1 <- function(){
     help2 <- function(){
         if (x == 1)
                 cat("Hello world x = 1")
     }

     x <- 1
     help2()
 }

Because help2 is now nested within help1, it can see all the local variables in help1, so things work with it done this way.

There are tricks to define help2 outside of help1 but allow it to see the variables within there, but I'd keep it simple and avoid them.

Duncan Murdoch


help1 = function(){
        x = 1
        help2()
}

with

help2 = function(){
        if (x == 1)
                cat("Hello world x = 1")
}

If I compile these functions and run help1()
an error message occurs
        Fehler in help2() : objekt "x" nicht gefunden

in english "error in help2(): object "x" not found"

If I change help1 to

help1 = function(){
        x <<- 1
        help2()
}

so that "x" is now defined at the global environment it works fine.
But the problem is, now "x" is defined also outside of help1 and this is not desired !

Is there any usable solution for this problem?
But, the original problem is to assign new values for "x" in help1 inside help2 !

Thanks in advance
Jörg Betzin
---------------------------------------------------
Deutsches Zentrum für Altersfragen
Manfred-von-Richthofen-Str. 2
12101 Berlin
Tel. (030) 260740-20
E-Mail: joerg.bet...@dza.de
URL: http://www.dza.de
---------------------------------------------------

        [[alternative HTML version deleted]]



------------------------------------------------------------------------

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to