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

Gabor Grothendieck ggrothendieck at gmail.com
Thu Mar 10 14:53:53 CET 2011


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



More information about the R-devel mailing list