Just tried it. It's definitely faster - but I get the same error: " Reached total allocation of 1535Mb:"
On Mon, Mar 29, 2010 at 8:27 PM, Gabor Grothendieck <ggrothendi...@gmail.com> wrote: > See if this works for you: > > DF[is.na(DF)] <- 0 > > On Mon, Mar 29, 2010 at 8:21 PM, Dimitri Liakhovitski <ld7...@gmail.com> > wrote: >> Dear R'ers, >> >> I have a very large data frame (over 4000 rows and 2,500 columns). My >> task is very simple - I have to replace all NAs with a zero. My code >> works fine on smaller data frames - but I have to deal with a huge one >> and there are many NAs in each column. >> R runs out of memory on me ("Reached total allocation of 1535Mb: see >> help(memory.size)"). Is there any other, more efficient way of doing >> it? >> Thanks a lot for any hints! >> Dimitri >> >> >> # Building an example frame: >> frame<-data.frame(a=rnorm(1:100),b=rnorm(1:100),c=rnorm(1:100),d=rnorm(1:100),e=rnorm(1:100),f=rnorm(1:100),g=rnorm(1:100)) >> set.seed(1234) >> for(i in names(frame)){ >> i.for.NA<-sample(1:100,60) >> frame[[i]][i.for.NA]<-NA >> } >> >> # Replacing all NAs in "frame" with zeros - is of course fast in this >> example, because this data frame is very small >> system.time({ >> frame<-lapply(frame,function(x){ >> x[is.na(x)]<-0 >> return(x) >> })}) >> >> >> -- >> Dimitri Liakhovitski >> Ninah.com >> dimitri.liakhovit...@ninah.com >> >> ______________________________________________ >> 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. >> > -- Dimitri Liakhovitski Ninah.com dimitri.liakhovit...@ninah.com ______________________________________________ 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.