[R] writing matrices (no subject)

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Jul 20 10:05:09 CEST 2005


Please use a current version of R: they are much better at this!
write.table was rewritten in R 2.1.0 to use *much* less memory.

There _is_ a `R Data Import/Export Manual' that dicsusses this.
write.table was designed to write `tables' (data frames) not matrices.
write.matrix (package MASS) does a much better job of the latter, 
memory-wise, in particular allowing the use of blocks.

That _is_ on the help page for write.table in your version of R.

Assuming this is a numeric matrix, it is taking up 373MB of storage.
It is not too surprising that you are having problems manipulating it on a 
1GB machine: my 1GB machine ended up swapping just creating such a matrix.


On Wed, 20 Jul 2005, David Ruau wrote:

> Hi All,
>
> I want to print a square matrix of 7000 x 7000 into a text file. But I
> got a error after few hours of computation...
> --------
> > write.table(MyDistMxDF, file = "temp.csv", sep=",", quote=F)
> *** malloc: vm_allocate(size=8421376) failed (error code=3)
> *** malloc[2889]: error: Can't allocate region
> Error: vector memory exhausted (limit reached?)
> *** malloc: vm_allocate(size=8421376) failed (error code=3)
> *** malloc[2889]: error: Can't allocate region
> >  q()
> *** malloc: vm_allocate(size=8421376) failed (error code=3)
> *** malloc[2889]: error: Can't allocate region
> *** malloc: vm_allocate(size=8421376) failed (error code=3)
> *** malloc[2889]: error: Can't allocate region
> Error in lazyLoadDBfetch(key, datafile, compressed, envhook) :
>         internal error in decompress1
> >
> ------
> I am running R 2.0.1 on MacOS X 10.3 with 1Gb ram.
> How could I write such a matrix to a text file.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list