keypos
returns the positions of the (fact table) elements that participate
in their sorted unique subset (dimension table)
Value
an integer vector of the same length as x
containing positions
relative to sort(unique(x), na.last=FALSE)
Details
NAs are sorted first in the dimension table, see ramorder.integer64()
.
This function automatically chooses from several low-level functions
considering the size of x
and the availability of a cache.
Suitable methods are
sortorderkey
(fast ordering)orderkey
(memory saving ordering).
See also
unique.integer64()
for the unique subset and match.integer64()
for finding positions in a different vector.
Examples
x <- as.integer64(sample(c(rep(NA, 9), 1:9), 32, TRUE))
keypos(x)
#> [1] 3 5 1 1 1 2 6 1 1 3 1 1 1 3 1 1 1 6 1 1 1 6 5 5 1 1 1 1 4 1 3 2
stopifnot(identical(keypos(x), match.integer64(x, sort(unique(x), na.last=FALSE))))