[Rd] Why is there no within.environment function?
Gavin Simpson
gavin.simpson at ucl.ac.uk
Wed Mar 21 23:24:12 CET 2012
On Wed, 2012-03-21 at 22:01 +0000, William Dunlap wrote:
> Wouldn't within.environment be identical to with.environment?
> > e <- new.env()
> > with(e, { One <- 1 ; Two <- 2+2i ; Theee <- One + Two })
> > objects(e)
> [1] "One" "Theee" "Two"
> It might make the transition between lists and environments
> simpler if within.environment existed.
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
One doesn't normally think of `with()` as changing it's `data` argument,
which might be one reason the connection to `with.environment()` was not
made here.
> d <- data.frame()
> with(d, {
+ A <- 1:3
+ B <- 1:3
+ })
> d
data frame with 0 columns and 0 rows
The behaviour of `with.environment()` makes sense once you think about
it as there is only one environment `e` (from your example), and when it
is updated during the call to `with()` it isn't a copy that is being
updated but the real thing. So I can see why it was overlooked.
G
>
> > -----Original Message-----
> > From: r-devel-bounces at r-project.org [mailto:r-devel-bounces at r-project.org] On Behalf
> > Of Richard Cotton
> > Sent: Wednesday, March 21, 2012 2:51 PM
> > To: r-devel at r-project.org
> > Subject: [Rd] Why is there no within.environment function?
> >
> > If I want to assign some variables into an environment, it seems
> > natural to do something like
> >
> > e <- new.env()
> > within(e,
> > {
> > x <- 1:5
> > y <- runif(5)
> > }
> > )
> >
> > This throws an error, since within.environment doesn't exist. I
> > realise I can work around it using
> >
> > as.environment(within(as.list(e),
> > {
> > x <- 1:5
> > y <- runif(5)
> > }
> > ))
> >
> > Just wondering why I can't use within directly with environments.
> >
> > --
> > 4dpiecharts.com
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Dr. Gavin Simpson [t] +44 (0)20 7679 0522
ECRC, UCL Geography, [f] +44 (0)20 7679 0565
Pearson Building, [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street, London [w] http://www.ucl.ac.uk/~ucfagls/
UK. WC1E 6BT. [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
More information about the R-devel
mailing list