keypos returns the positions of the (fact table) elements that participate
in their sorted unique subset (dimension table)
keypos(x, ...)
# S3 method for class 'integer64'
keypos(x, method = NULL, ...)an integer vector of the same length as x containing positions
relative to sort(unique(x), na.last=FALSE)
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).
unique.integer64() for the unique subset and match.integer64()
for finding positions in a different vector.
x <- as.integer64(sample(c(rep(NA, 9), 1:9), 32, TRUE))
keypos(x)
#> [1] 1 1 1 6 1 1 1 9 1 1 1 9 8 8 1 1 1 1 7 1 6 3 10 1 8
#> [26] 4 5 9 1 2 1 1
stopifnot(identical(keypos(x), match.integer64(x, sort(unique(x), na.last=FALSE))))