Use gzcon() to make a compressed connection and any function that write to a connection will write compressed data. E.g.,
> con <- gzcon(file("tempfile.junk", "wb")) > x <- as.integer(rep(c(-127, 1, 127), c(3,2,1))) > writeBin(x, con, size=1) > close(con) > q("no") bill:158% zcat tempfile.junk | od --format d1 0000000 -127 -127 -127 1 1 127 0000006 (In this tiny example the gzip'ed file is bigger than the equivalent one, but it is gzip'ed.) 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 Mike Miller > Sent: Thursday, September 08, 2011 8:14 AM > To: Duncan Murdoch > Cc: R-Help List > Subject: Re: [R] storage and single-precision > > On Thu, 8 Sep 2011, Duncan Murdoch wrote: > > > On 11-09-07 6:25 PM, Mike Miller wrote: > > > >> I'm getting the impression from on-line docs that R cannot work with > >> single-precision floating-point numbers, but that it has a pseudo-mode > >> for single precision for communication with external programs. > >> > >> I don't mind that R is using doubles internally, but what about > >> storage? If all I need to store is single-precision (32-bit), can I do > >> that? When it is read back into R it can be converted from single to > >> double (back to 64-bit). > >> > >> Furthermore, the data are numbers from 0.000 to 2.000 with no missing > >> values that could be stored just as accurately as unsigned 16-bit > >> integers from 0 to 2000. That would be the best plan for me. > > > > > > writeBin is quite flexible in converting between formats if you just > > want to store them on disk. To use nonstandard formats in memory will > > require external support; it's not easy. > > > Thanks. I can see now that writeBin will store unsigned 16-bit integers, > which is what I want. There is one other issue -- with save() I'm allowed > to use compression (e.g., gzip), but there doesn't seem to be a > compression option in writeBin. Is there a way to get the best of both > worlds? The data are highly nonrandom and at most 11 bits will be used > per integer, so the compression ratio should be pretty good, if I can have > one. > > Mike > > ______________________________________________ > 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. ______________________________________________ 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.