Romain Francois <[EMAIL PROTECTED]> writes:

> Hi,
> 
> Consider the code :
> 
> g <- function(){
>   print(.x)
>  .x <- 3
> }
> 
> f <- function(){
>   environment(g) <- environment()
>   .x <- 2
>   g()
>   .x
> }
> 
>  > f()
> [1] 2
> [1] 2
> 
> 
> I would like f() to return 3. How can I do that ? Am I completely out of 
> place ?
> Doing that, I want to avoid to pass .x as a parameter in f, because in 
> real life .x is pretty big and g() is called over and over in a loop.

If you want to assign into the environment of g, you'll need <<- ,
otherwise you  assign to a local variable. 

Another possibility involves assign(..., parent.frame()) 

-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED])                  FAX: (+45) 35327907

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to