This function returns a Permutations iterator for iterating
permutations of k
items from n
items. The iterator allows users to fetch the next
permutation(s) via the getnext()
method.
Permutations ipermutations(x = NULL, k = NULL, n = NULL, v = NULL, freq = NULL, replace = FALSE, skip = NULL)
x | an integer or a vector, will be treated as |
---|---|
k | an integer, the number of items drawn, defaults to |
n | an integer, the total number of items, its value may be implicitly deduced from |
v | a vector to be drawn, defaults to |
freq | an integer vector of item repeat frequencies |
replace | an logical to draw items with replacement |
skip | the number of combinations skipped |
An object of class R6ClassGenerator
of length 25.
The Permutations
class can be initialized by using the convenient wrapper ipermutations
or
Permutations$new(n, k, v = NULL, freq = NULL, replace = FALSE)
getnext(d = 1L, layout = NULL, drop = NULL) collect(layout = "row") reset()
number of fetched arrangements
if "row", "column" or "list" is specified, the returned value would be a "row-major" matrix, a "column-major" matrix or a list respectively
vectorize a matrix or unlist a list
permutations for generating all permutations and npermutations to calculate number of permutations
iperm <- ipermutations(5, 2) iperm$getnext()#> [1] 1 2iperm$getnext(2)#> [,1] [,2] #> [1,] 1 3 #> [2,] 1 4iperm$getnext(layout = "column", drop = FALSE)#> [,1] #> [1,] 1 #> [2,] 5# collect remaining permutations iperm$collect()#> [,1] [,2] #> [1,] 2 1 #> [2,] 2 3 #> [3,] 2 4 #> [4,] 2 5 #> [5,] 3 1 #> [6,] 3 2 #> [7,] 3 4 #> [8,] 3 5 #> [9,] 4 1 #> [10,] 4 2 #> [11,] 4 3 #> [12,] 4 5 #> [13,] 5 1 #> [14,] 5 2 #> [15,] 5 3 #> [16,] 5 4#> [1] 3 4 5 6 3 5 6 7 4 5 7 8 5 6 7 9 6 7 8 9