
Last chance! 50% off unlimited learning
Sale ends in
The "abIndex"
class
, short for “Abstract
Index Vector”, is used for dealing with large index vectors more
efficiently, than using integer (or numeric
) vectors of
the kind 2:1000000
or c(0:1e5, 1000:1e6)
.
Note that the current implementation details are subject to change,
and if you consider working with these classes, please contact the
package maintainers (packageDescription("Matrix")$Maintainer
).
Objects can be created by calls of the form new("abIndex", ...)
,
but more easily and typically either by as(x, "abIndex")
where
x
is an integer (valued) vector, or directly by
abIseq()
and combination c(...)
of such.
kind
:a character
string,
one of ("int32", "double", "rleDiff")
, denoting the
internal structure of the abIndex object.
x
:Object of class "numLike"
; is
used (i.e., not of length 0
) only iff the object is not
compressed, i.e., currently exactly when kind != "rleDiff"
.
rleD
:object of class "rleDiff"
,
used for compression via rle
.
signature(x = "abIndex")
: ...
signature(x = "abIndex", i = "index", j = "ANY", drop = "ANY")
: ...
signature(from = "numeric", to = "abIndex")
: ...
signature(from = "abIndex", to = "numeric")
: ...
signature(from = "abIndex", to = "integer")
: ...
signature(x = "abIndex")
: ...
signature(e1 = "numeric", e2 = "abIndex")
: These
and the following arithmetic and logic operations are
not yet implemented; see Ops
for a
list of these (S4) group methods.
signature(e1 = "abIndex", e2 = "abIndex")
: ...
signature(e1 = "abIndex", e2 = "numeric")
: ...
signature(x = "abIndex")
: ...
("abIndex")
: simple show
method,
building on show(<rleDiff>)
.
("abIndex")
: works analogously to regular vectors.
("abIndex")
: ditto.
library(utils, pos = "package:base", verbose = FALSE)
showClass("abIndex")
ii <- c(-3:40, 20:70)
str(ai <- as(ii, "abIndex"))# note
ai # -> show() method
stopifnot(identical(-3:20,
as(abIseq1(-3,20), "vector")))
Run the code above in your browser using DataLab