[BioC] Assigning values to environments - merging them?
Helen Zhou
zhou.helen at yahoo.com
Wed Jun 11 10:28:40 CEST 2008
Dear Christos, James and Wolfgang
Thanks you for your kind help. That was just what I
needed!
Yours truly
Helen
--- Christos Hatzis <christos.hatzis at nuverabio.com>
wrote:
> There is a slightly simpler way for merging two
> environments using l2e's
> second argument:
>
> e3 <- l2e(as.list(e1), e2)
>
> -Christos
>
> > -----Original Message-----
> > From: bioconductor-bounces at stat.math.ethz.ch
> > [mailto:bioconductor-bounces at stat.math.ethz.ch] On
> Behalf Of
> > James W. MacDonald
> > Sent: Tuesday, June 10, 2008 1:45 PM
> > To: Helen Zhou
> > Cc: bioconductor at stat.math.ethz.ch
> > Subject: Re: [BioC] Assigning values to
> environments - merging them?
> >
> > Hi Helen,
> >
> > Helen Zhou wrote:
> > > Dear Sir/Madam
> > >
> > > I have two questions.
> > >
> > > 1) I am currently trying to add a lot of values
> to an
> > environment. A
> > > simplistic example is:
> > >
> > > names <- as.character(1:100000)
> > > values <- data.frame(a=rep("a", 4), b=(rep("b",
> 4)))
> > > environment <- new.env(parent=emptyenv())
> > > for (i in 1:100000) {
> > > assign(names[i], values, envir=environment)
> > > }
> >
> > Ouch! You don't want to do that. See multiassign()
> in the
> > Biobase package.
> >
> > >
> > > I find that as I gets bigger this runs
> increasingly slow. Is this
> > > caused by the increasing size of the enviroment?
> Or by
> > something else?
> > > And is there a way for me to avoid this?
> > >
> > > 2) Assume that I have two different environments
> that I
> > would like to
> > > merge into one so all the values are shared, how
> can I accomplish
> > > this? For example with:
> > >
> > > e1 <- new.env(parent = emptyenv())
> > > e2 <- new.env(parent = emptyenv())
> > > assign("a", 3, envir=e1)
> > > assign("b", 4, envir=e2)
> > >
> > > how can I join e1 and e2 so I have for example
> e3
> > containing all the
> > > values. This seems to happen if I
> > > have:
> > >
> > > e1 <- e2 <- new.env(parent = emptyenv())
> assign("a", 3, envir=e1)
> > > assign("b", 4, envir=e2)
> > >
> > > but is there a way to do it for enviroments that
> are
> > already existing.
> >
> > I don't know of a way to merge environments
> directly.
> > However, you could just pull things out of each
> env into two
> > lists, concatenate, and stuff into a new env.
> >
> > l1 <- as.list(e1)
> > l2 <- as.list(e2)
> > e3 <- l2e(c(l1, l2))
> >
> > Best,
> >
> > Jim
> >
> >
> >
> > >
> > > Thanks you for any help you can give me. I am
> sorry if my questions
> > > are very simple, but I am a bit confused by the
> concept of
> > > environemnts and how to work with them.
> > >
> > > Yours truly.
> > > Mrs Helen Zhou
> > >
> > > _______________________________________________
> > > Bioconductor mailing list
> > > Bioconductor at stat.math.ethz.ch
> > >
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> > > Search the archives:
> > >
>
http://news.gmane.org/gmane.science.biology.informatics.conductor
> >
> > --
> > James W. MacDonald, M.S.
> > Biostatistician
> > Affymetrix and cDNA Microarray Core
> > University of Michigan Cancer Center
> > 1500 E. Medical Center Drive
> > 7410 CCGC
> > Ann Arbor MI 48109
> > 734-647-5623
> >
> > _______________________________________________
> > Bioconductor mailing list
> > Bioconductor at stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/bioconductor
> > Search the archives:
> >
>
http://news.gmane.org/gmane.science.biology.informatics.conductor
> >
> >
>
>
>
More information about the Bioconductor
mailing list