Decompress the full contents of a file (or connection) into another file (or connection). This can be useful if you need to access a compressed file in some external software that doesn't support decompression, or for compatibility with a function that doesn't accept connections and doesn't handle decompression.
Usage
decompress(file, dest = sub("\\.(gz|bz2|xz)$", "", file), force = FALSE)Arguments
- file
Path to a compressed file, or a connection. See Details.
- dest
Path to the destination file, or a connection. Must be given explicitly if
fileis not a path that exists.- force
Set to
TRUEto overwritefilewithdest, if applicable.
Details
If file is a connection, it will be wrapped with gzcon(), automatically
opened if necessary, and is always closed (and destroyed) afterwards.
See the underlying gzfile() for an authoritative list of supported
compression types. At time of writing at least gzip, bzip2, xz and
lzma are supported.
The batch size used for I/O operations can be configured by setting the
mire.decompress.batch_size option (in bytes). The default batch size is 50 MiB.
Examples
decompress(url("https://www.stats.ox.ac.uk/pub/datasets/csb/ch12.dat.gz"), "ch12.dat")
#> The source `file` connection will be closed and destroyed.
#> Decompressing `file` into ch12.dat
head(read.table("ch12.dat"))
#> V1 V2 V3 V4 V5 V6 V7
#> 1 37 86 1 0 0 2 0
#> 2 61 77 1 0 0 4 0
#> 3 1084 75 1 0 0 3 1
#> 4 1092 77 1 0 1 2 1
#> 5 23 86 1 0 0 4 0
#> 6 1091 71 1 1 0 3 1
unlink("ch12.dat") # Tidy up