rle
From base v3.3
by R-core R-core@R-project.org
Run Length Encoding
Compute the lengths and values of runs of equal values in a vector -- or the reverse operation.
- Keywords
- manip
Usage
rle(x)
inverse.rle(x, ...)
"print"(x, digits = getOption("digits"), prefix = "", ...)
Arguments
- x
- a vector (atomic, not a list) for
rle()
; an object of class"rle"
forinverse.rle()
. - ...
- further arguments; ignored here.
- digits
- number of significant digits for printing, see
print.default
. - prefix
- character string, prepended to each printed line.
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.
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
library(base)
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)))
Community examples
Looks like there are no examples yet.