unipos returns the positions of those elements returned by unique().
Arguments
- x
a vector or a data frame or an array or
NULL.- incomparables
ignored
- order
The order in which positions of unique values will be returned, see details
- ...
ignored
- nunique
NULL or the number of unique values (including NA). Providing
nuniquecan speed-up whenxhas no cache. Note that a wrongnuniquecan cause undefined behaviour up to a crash.- method
NULL for automatic method selection or a suitable low-level method, see details
Details
This function automatically chooses from several low-level functions
considering the size of x and the availability of a cache.
Suitable methods are
hashmapupo(simultaneously creating and using a hashmap)hashupo(first creating a hashmap then using it)sortorderupo(fast ordering)orderupo(memory saving ordering).
The default order="original" collects unique values in the order of
the first appearance in x like in unique(), this costs extra processing.
order="values" collects unique values in sorted order like in table(),
this costs extra processing with the hash methods but comes for free.
order="any" collects unique values in undefined order, possibly faster.
For hash methods this will be a quasi random order, for sort methods this
will be sorted order.
See also
unique.integer64() for unique values and match.integer64()
for general matching.
Examples
x <- as.integer64(sample(c(rep(NA, 9), 1:9), 32, TRUE))
unipos(x)
#> [1] 1 7 9 11 13 14 18 20 28 30
unipos(x, order="values")
#> [1] 1 18 28 30 11 14 13 20 7 9