From Heather.Turner at warwick.ac.uk  Wed Jan 18 14:58:15 2006
From: Heather.Turner at warwick.ac.uk (Heather Turner)
Date: Wed, 18 Jan 2006 13:58:15 +0000
Subject: [Rd] Loading of namespace on load of .Rdata (was
	strange	behaviourof load)
Message-ID: <s3ce4988.063@liberator.csv.warwick.ac.uk>

Apologies - I was not trying to correct you Brian, but to explore how the situation could arise. I'm sure you had a good idea why the namespace (or a reference to it) had been saved, but this was not clear to me and I thought, possibly not to others either.

Thanks for putting me right over parent environments vs. enclosures - again I was not trying to correct you with the point I made there, but to trace back where the reference to the namespace might have come from in Giovanni's case.

I think the issues raised are still of interest...

Heather


>>> Prof Brian Ripley <ripley at stats.ox.ac.uk> 01/18/06 01:31pm >>>
On Wed, 18 Jan 2006, Heather Turner wrote:

[Lines wrapped for legibility and R-help removed as it is not an 
appropriate list.]

> Last week Giovanni Parrinello posted a message asking why various 
> packages were loaded when he loaded an .Rdata file. Brian Ripley replied 
> saying he thought it was because the saved workspace contained a 
> reference to the namespace of ipred. (Correspondence copied below).
>
> This begs the question: how did the reference to the namespace of ipred 
> come to be in the .Rdata file? Brian did say it is likely to be because 
> the workspace contained object(s) saved with environment the namespace 
> of ipred - but how would this come about?
>
> In this case I think is because the .Rdata file contained an object 
> whose *parent* environment was the namespace of ipred. Take the 
> following example from ?bagging (having loaded ipred):

Excuse me: environments do not have parents but enclosures according to 
?environment.

Of course, the environment of mod is itself an object, and so my statement 
holds true.  Saving a workspace saves all the objects (possibly as 
references) whether named or not.  I was fully aware that the namespace 
was likely to be up the environment tree of a named object when I chose my 
words carefully.

>> data(BreastCancer)
>>
>> mod <- bagging(Class ~ Cl.thickness + Cell.size
> +                 + Cell.shape + Marg.adhesion
> +                 + Epith.c.size + Bare.nuclei
> +                 + Bl.cromatin + Normal.nucleoli
> +                 + Mitoses, data=BreastCancer, coob=TRUE)
>>
>> environment(mod$mtrees[[1]]$btree$terms)
> <environment: 024E8138>
>>
>> parent.env(environment(mod$mtrees[[1]]$btree$terms))
> <environment: namespace:ipred>

parent.env is a very confusing name.  To quote the draft R language 
definition:

 	`The parent.env function may be used to access the enclosure
 	of an environment.'

[...]


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk 
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/ 
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Loading of namespace on load of .Rdata (was strange behaviourof load)
Heather Turner