You did not show the code you used to populate your object, but consider the following ways to make as.list(1:50000) via repeated assignments:
> system.time( { z0 <- list() ; for(i in 1:50000)z0[i] <- list(i) } ) user system elapsed 13.34 0.00 13.42 > system.time( { z1 <- list() ; for(i in 1:50000)z1[[i]] <- i } ) user system elapsed 12.98 0.00 13.36 > system.time( { z2 <- vector("list",50000) ; for(i in 1:50000)z2[i] <- > list(i) } ) user system elapsed 0.28 0.00 0.26 > system.time( { z3 <- vector("list",50000) ; for(i in 1:50000)z3[[i]] <- i } ) user system elapsed 0.22 0.00 0.20 > identical(z0,z1) && identical(z0,z2) && identical(z0,z3) [1] TRUE Preallocating a vector to its ultimate size can be much faster than repeatedly expanding it. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of André Rossi > Sent: Wednesday, September 07, 2011 3:08 PM > To: r-help@r-project.org > Subject: [R] Very slow assignments > > I'm creating an object of a S4 class that has two slots: ListExamples, which > is a list, and idx, which is an integer (as the code below). > > Then, I read a data.frame file with 10000 (ten thousands) of lines and 10 > columns, do some pre-processing and, basically, I store each line as an > element of a list in the slot ListExamples of the S4 object. However, any > kind of assignment operation (<-) that I try to do after this took a > considerable time. > > Can anyone explain me why dois it happen? Is it possible to speed up an > script that deals with a big number of data (it might be data.frame or > list)? > > Thank you, > > André Rossi > > setClass("Buffer", > representation=representation( > Listexamples = "list", > idx = "integer" > ) > ) > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.