| intrle | R Documentation |
These C-coded utilitites speed up index preprocessing considerably.
intrle(x)
intisasc(x, na.method = c("none", "break", "skip")[2])
intisdesc(x, na.method = c("none", "break", "skip")[1])
x |
an integer vector |
na.method |
one of "none", "break", "skip", see details. The strange defaults stem from the initial usage. |
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.
intrle returns an object of class rle() or NULL, if rle-compression is not
efficient (compression factor <3 or length(x) < 3).
intisasc returns one of FALSE, NA, TRUE
intisdesc returns one of FALSE, TRUE (if the input contains NAs, the output is
undefined)
intisasc(): check whether integer vector is ascending
intisdesc(): check whether integer vector is descending
Jens Oehlschlägel
ff::hi(), rle(), is.unsorted(),
ff::is.sorted.default()
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")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.