From ggrothendieck at gmail.com  Thu Mar 10 14:53:53 2011
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Thu, 10 Mar 2011 08:53:53 -0500
Subject: [Rd] Create an environment and assign objects to it in one go?
In-Reply-To: <AANLkTi=n9v0ebCbcsqtZCGQEtUa2nN_rUpoM+0uf0shS@mail.gmail.com>
References: <AANLkTi=n9v0ebCbcsqtZCGQEtUa2nN_rUpoM+0uf0shS@mail.gmail.com>
Message-ID: <AANLkTi=F5kYczLggA=4SFT8Qo87UQuWTO67dpV6u5y7z@mail.gmail.com>

On 3/10/11, Henrik Bengtsson <hb at biostat.ucsf.edu> wrote:
> Hi,
>
> I've just created:
>
> newEnvEval <- function(..., hash=FALSE, parent=parent.frame(), size=29L) {
>   envir <- new.env(hash=hash, parent=parent, size=size);
>   evalq(..., envir=envir);
>   envir;
> } # newEnvEval()
>
> so that I can create an environment and assign objects to it in one go, e.g.
>
> env <- newEnvEval({ a <- 1; b <- 2; });
> print(env$a);
>
> Does this already exists somewhere?
>
> /Henrik
>

You can do this:

   e <- as.environment(list(a = 1, b = 2))
   e$a; e$b

or since proto objects are environments (but the $ has slightly
different semantics when applied to functions):

   library(proto)
   p <- proto(a = 1, b = 2, expr = { c <- 3 })
   p$a; p$b; p$c




-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



[Rd] Create an environment and assign objects to it in one go?
Gabor Grothendieck