[Rd] linking environments
Steven McKinney
smckinney at bccrc.ca
Wed Mar 25 19:48:03 CET 2009
>
> -----Original Message-----
> From: r-devel-bounces at r-project.org on behalf of Joerg Betzin
> Sent: Wed 3/25/2009 8:47 AM
> To: r-devel at r-project.org
> Subject: [Rd] linking environments
>
> Dear R-helpers,
>
> I try to use nested R-functions as follows:
Looks like a question for R-help, not R-devel.
It's better to post such questions to the
R-help at r-project.org mailing list.
>
> 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"
>
Why not pass the value of x from help1
to help2?
help1 <- function(){
x <- 1
help2(x)
}
help2 <- function(x){
if (x == 1)
cat("Hello world x = 1")
}
> help1 <- function(){
+ x <- 1
+ help2(x)
+ }
>
>
>
> help2 <- function(x){
+ if (x == 1)
+ cat("Hello world x = 1")
+ }
>
>
>
> help1()
Hello world x = 1>
(No compiling is involved.)
> 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 !
Is this a homework problem?
Some reading of
?environment
will help answer this.
>
> 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.betzin at dza.de
> URL: http://www.dza.de
> ---------------------------------------------------
>
> [[alternative HTML version deleted]]
>
Steven McKinney, Ph.D.
Statistician
Molecular Oncology and Breast Cancer Program
British Columbia Cancer Research Centre
email: smckinney +at+ bccrc +dot+ ca
tel: 604-675-8000 x7561
BCCRC
Molecular Oncology
675 West 10th Ave, Floor 4
Vancouver B.C.
V5Z 1L3
Canada
More information about the R-devel
mailing list