rle                   package:base                   R Documentation

Run Length Encoding

Description:

     Compute the lengths and values of runs of equal values in a vector
     - or the reverse operation.

Usage:

     rle(x)
     inverse.rle(x, ...)

Arguments:

       x: an atomic vector for 'rle()'; an object of class '"rle"' for
          'inverse.rle()'.

     ...: further arguments which are ignored in R.

Details:

     Missing values are regarded as unequal to the previous value, even
     if that is also missing.

     'inverse.rle()' is the inverse function of 'rle()', reconstructing
     'x' from the runs.

Value:

     'rle()' returns an object of class '"rle"' which is a list with
     components: 

 lengths: an integer vector containing the length of each run.

  values: a vector of the same length as 'lengths' with the
          corresponding values.


     'inverse.rle()' returns an atomic vector.

Examples:

     x <- rev(rep(6:10, 1:5))
     rle(x)
     ## lengths [1:5]  5 4 3 2 1
     ## values  [1:5] 10 9 8 7 6

     z <- c(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE)
     rle(z)
     rle(as.character(z))

     stopifnot(x == inverse.rle(rle(x)),
               z == inverse.rle(rle(z)))

