Rank Combinations and Permutations
combinatoricsRank.RdGenerate the rank (lexicographically) of combinations/permutations. These functions are the complement to
comboSampleandpermuteSample. See the examples below.GMP support allows for exploration of combinations/permutations of vectors with many elements.
Usage
comboRank(..., v, repetition = FALSE, freqs = NULL, nThreads = NULL)
permuteRank(..., v, repetition = FALSE, freqs = NULL, nThreads = NULL)Arguments
- ...
vectors or matrices to be ranked.
- v
Source vector. If
vis a positive integer, it will be converted to the sequence1:v. Ifvis a negative integer, it will be converted to the sequencev:-1. All atomic types are supported (Seeis.atomic).- repetition
Logical value indicating whether combinations/permutations should be with or without repetition. The default is
FALSE.- freqs
A vector of frequencies used for producing all combinations/permutations of a multiset of
v. Each element offreqsrepresents how many times each element of the source vector,v, is repeated. It is analogous to thetimesargument inrep. The default value isNULL.- nThreads
Specific number of threads to be used. The default is
NULL.
Details
These algorithms rely on efficiently ranking the \(n^{th}\) lexicographical combination/permutation.
Value
A vector of class integer, numeric, or bigz determined by the total number of combinations/permutations
Examples
mySamp = comboSample(30, 8, TRUE, n = 5, seed = 10, namedSample = TRUE)
myRank = comboRank(mySamp, v = 30, repetition = TRUE)
all.equal(as.integer(rownames(mySamp)), myRank)
#> [1] TRUE