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.