Re: [R] how to bind lists recursively

From: <Bill.Venables_at_csiro.au>
Date: Wed, 28 May 2008 13:18:51 +1000

This is somewhat subtle.

Rolf's solution (here corrected to...)

a <- list()
for(i in 0:10000) a[[i+1]] <- i

is the best of the loop solutions (or at least the best I know of). The apparently similar

a <- list(0)
for(i in 1:10000) a <- c(a, list(i))

will take a lot longer, although the result is the same. For example:

> system.time({

    a <- list()
    for(i in 0:10000) a[[i+1]] <- i
    })
   user system elapsed
   0.59 0.00 0.59
> system.time({

    a <- list(0)
    for(i in 1:10000) a <- c(a, list(i))     })
   user system elapsed
   6.87 0.00 6.89
>

That's a factor of about 11 times as long. The best of the lot is

a <- as.list(0:10000)

of course, but this has problems with generalisation, (which everyone suspects is going to be needed here...).

Bill Venables.

-----Original Message-----
From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On Behalf Of Rolf Turner
Sent: Wednesday, 28 May 2008 1:02 PM
To: Daniel Yang
Cc: r-help_at_r-project.org
Subject: Re: [R] how to bind lists recursively

On 28/05/2008, at 2:43 PM, Daniel Yang wrote:

> Dear all,
>
> I want to create a list that contains 0,1,2,3, ..., 10000 as its
> elements. I used the following code, which apparently doesn't work
> very well.
>
> a <- 0
> for(i in 1:10000) {
> a <- list(a, i)
> }
>
> The result is not what I wanted. So how to create the bind lists
> recursively so that the last element would be the newly added one
> while the previous elements all remain the same?

a <- list()
for(i in 1:10000) a[[i]] <- i

(The word ``bind'' is inappropriate.)

        cheers,

                Rolf Turner

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 28 May 2008 - 05:37:29 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 28 May 2008 - 12:30:42 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive