[Rd] inflate zlib compressed data using base R or CRAN package?

Dirk Eddelbuettel edd at debian.org
Thu Nov 28 02:22:11 CET 2013


On 27 November 2013 at 18:38, Dirk Eddelbuettel wrote:
| 
| On 27 November 2013 at 23:49, Dr Gregory Jefferis wrote:
| | I have a binary file type that includes a zlib compressed data block (ie 
| | not gzip). Is anyone aware of a way using base R or a CRAN package to 
| | decompress this kind of data (from disk or memory). So far I have found 
| | Rcompression::decompress on omegahat, but I would prefer to keep 
| | dependencies on CRAN (or bioconductor). I am also trying to avoid 
| | writing yet another C level interface to part of zlib.
| 
| Unless I am missing something, this is in base R; see help(connections).
| 
| Here is a quick demo:
| 
| R> write.csv(trees, file="/tmp/trees.csv")    # data we all have
| R> system("gzip -v /tmp/trees.csv")           # as I am lazy here
| /tmp/trees.csv:	 50.5% -- replaced with /tmp/trees.csv.gz
| R> read.csv(gzfile("/tmp/trees.csv.gz"))      # works out of the box

Oh, and in case you meant zip file containing a data file, that also works.

First converting what I did last

edd at max:/tmp$ gunzip trees.csv.gz 
edd at max:/tmp$ zip trees.zip trees.csv 
  adding: trees.csv (deflated 50%)
edd at max:/tmp$ 

Then reading the csv from inside the zip file:

R> read.csv(unz("/tmp/trees.zip", "trees.csv"))
    X Girth Height Volume
1   1   8.3     70   10.3
2   2   8.6     65   10.3
3   3   8.8     63   10.2
4   4  10.5     72   16.4
5   5  10.7     81   18.8
6   6  10.8     83   19.7
7   7  11.0     66   15.6
8   8  11.0     75   18.2
9   9  11.1     80   22.6
10 10  11.2     75   19.9
11 11  11.3     79   24.2
12 12  11.4     76   21.0
13 13  11.4     76   21.4
14 14  11.7     69   21.3
15 15  12.0     75   19.1
16 16  12.9     74   22.2
17 17  12.9     85   33.8
18 18  13.3     86   27.4
19 19  13.7     71   25.7
20 20  13.8     64   24.9
21 21  14.0     78   34.5
22 22  14.2     80   31.7
23 23  14.5     74   36.3
24 24  16.0     72   38.3
25 25  16.3     77   42.6
26 26  17.3     81   55.4
27 27  17.5     82   55.7
28 28  17.9     80   58.3
29 29  18.0     80   51.5
30 30  18.0     80   51.0
31 31  20.6     87   77.0
R> 

Regards, Dirk

-- 
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com



More information about the R-devel mailing list