intrle {bit} | R Documentation |
Hybrid Index, C-coded utilities
Description
These C-coded utilitites speed up index preprocessing considerably.
Usage
intrle(x)
intisasc(x, na.method = c("none", "break", "skip")[2])
intisdesc(x, na.method = c("none", "break", "skip")[1])
Arguments
x |
an integer vector |
na.method |
one of "none", "break", "skip", see details. The strange defaults stem from the initial usage. |
Details
intrle
is by factor 50 faster and needs less RAM (2x its input
vector) compared to rle()
which needs 9x the RAM of its input
vector. This is achieved because we allow the C-code of intrle
to
break when it turns out, that rle-packing will not achieve a compression
factor of 3 or better.
intisasc
is a faster version of is.unsorted()
: it checks whether x
is sorted.
intisdesc
checks for being sorted descending and by default default assumes that the
input x
contains no NAs.
na.method="none"
treats NAs
(the smallest integer) like every other integer and
hence returns either TRUE
or FALSE
na.method="break"
checks for NAs
and
returns either NA
as soon as NA
is encountered. na.method="skip"
checks for
NAs
and skips over them, hence decides the return value only on the basis of
non-NA values.
Value
-
intrle
returns an object of classrle()
or NULL, if rle-compression is not efficient (compression factor <3 orlength(x) < 3
). -
intisasc
returns one ofFALSE, NA, TRUE
-
intisdesc
returns one ofFALSE, TRUE
(if the input contains NAs, the output is undefined)
Functions
-
intisasc()
: check whether integer vector is ascending -
intisdesc()
: check whether integer vector is descending
Author(s)
Jens Oehlschlägel
See Also
ff::hi()
, rle()
, is.unsorted()
,
ff::is.sorted.default()
Examples
intrle(sample(1:10))
intrle(diff(1:10))
intisasc(1:10)
intisasc(10:1)
intisasc(c(NA, 1:10))
intisdesc(1:10)
intisdesc(c(10:1, NA))
intisdesc(c(10:6, NA, 5:1))
intisdesc(c(10:6, NA, 5:1), na.method="skip")
intisdesc(c(10:6, NA, 5:1), na.method="break")