base (version 3.5.3)

# rle: 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, …)# S3 method for rle
print(x, digits = getOption("digits"), prefix = "", …)```

## Arguments

x

a vector (atomic, not a list) for `rle()`; an object of class `"rle"` for `inverse.rle()`.

further arguments; ignored here.

digits

number of significant digits for printing, see `print.default`.

prefix

character string, prepended to each printed line.

## 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.

## Details

‘vector’ is used in the sense of `is.vector`.

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.

## Examples

Run this code
``````# NOT RUN {
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))
print(rle(z), prefix = "..| ")

N <- integer(0)
stopifnot(x == inverse.rle(rle(x)),
identical(N, inverse.rle(rle(N))),
z == inverse.rle(rle(z)))
# }
``````

Run the code above in your browser using DataCamp Workspace