R: Do "zero" run-length encoding compression of a vector of...

compress.default {wavethresh} | R Documentation

## Do "zero" run-length encoding compression of a vector of numbers.

### Description

Efficiently compress a vector containing many zeroes.

### Usage

    ## Default S3 method:
    compress(v, verbose=FALSE,...)

### Arguments

`v` | The vector that you wish to compress. This compression function is efficient at compressing vectors with many zeroes, but is not a general compression routine.
`verbose` | If`TRUE` then this routine prints out the degree of compression achieved.
`...` | any other arguments

### Details

Images are large objects. Thresholded 2d wavelet objects (`imwd`) are also large, but many of their elements are zero. compress.default takes a vector, decides whether compression is necessary and if it is makes an object of class `compressed` containing the nonzero elements and their position in the original vector.

The decision whether to compress the vector or not depends on two things, first the number of non-zero elements in the vector (r, say), and second the length of the vector (n, say). Since the position and value of the non-zero elements is stored we will need to store 2r values for the non-zero elements. So compression takes place if `2r < n`.

This function is the default method for the generic function `compress`. It can be invoked by calling compress for an object of the appropriate class, or directly by calling compress.default regardless of the class of the object.

### Value

An object of class compressed if `compression` took place, otherwise a an object of class `uncompressed`.

### RELEASE

Version 3.5.3 Copyright Guy Nason 1994

### Note

Sometimes the compressed object can be larger than the original. This usually only happens for small objects, so it doesn't really matter.

### Author(s)

G P Nason

### See Also

`compress`, `imwd`, `threshold.imwd`, `uncompress`

### Examples

    #
    # Compress a vector with lots of zeroes
    #
    compress(c(rep(0,100),99))
    #$position:
    #[1] 101
    #
    #$values:
    #[1] 99
    #
    #$original.length:
    #[1] 101
    #
    #attr(, "class"):
    #[1] "compressed"
    #
    # Try to compress a vector with not many zeroes
    #
    compress(1:10)
    #$vector:
    #[1]  1 2  3  4  5  6  7  8  9 10
    #
    #attr(, "class"):
    #[1] "uncompressed"
    #
    #

[Package wavethresh version 4.6.8 Index]