Re: [R] Binary Matrices

From: Barry Rowlingson <B.Rowlingson_at_lancaster.ac.uk>
Date: Thu 14 Apr 2005 - 03:23:38 EST

Martin Maechler wrote:

> As others have said, you can use either 'SparseM' or 'Matrix'.
> The latter has also good code for sparse matrices, and actually
> I know that Doug Bates was going to implement sparse logical
> matrices in the next few days.

  The old 8-bit assembly language programmer in me baulks at this flippant waste of memory. Storing a *single bit* in 4 bytes? That would reduce the maximum number of bits you could store on a Z80-based machine with a fully maxed-out 64k of RAM to 16384, minus the 8k or whatever your system ROM was.

  No, the real solution to this problem lies in the 'rawToChar' functions, and its friends. You could pack your entire binary matrix into a character string, and store 8 bits per byte. A factor of 32 improvement in storage (plus a little overhead).

  You could go the whole hog and write a new binary matrix class, but that would probably be silly, much easier to just write two functions that packed a binary matrix into this form, and unpacked it back into full numeric matrix form.

  And of course this method doesn't rely on the matrix being sparse, or use run-length encoding or other compression scheme. Its a flat factor of 32 compression.

  Okay, I'm being slightly sarcastic here, and if it wasn't time to go home now I'd have a quick bash at this, just to see what you can do with R's rawToChar function and friends. Never knew they existed until now.

Baz



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Apr 14 03:28:39 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:07 EST