This function returns a Compositions iterator for iterating
compositions of an non-negative integer n
into k
parts or parts of any sizes.
The iterator allows users to fetch the next partition(s) via the getnext()
method.
Compositions icompositions(n, k = NULL, descending = FALSE, skip = NULL)
n | an non-negative integer to be partitioned |
---|---|
k | number of parts |
descending | an logical to use reversed lexicographical order |
skip | the number of compositions skipped |
An object of class R6ClassGenerator
of length 25.
The Compositions
class can be initialized by using the convenient wrapper icompositions
or
Compositions$new(n, k = NULL, descending = 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
compositions for generating all compositions and ncompositions to calculate number of compositions
ipart <- icompositions(4) ipart$getnext()#> [1] 1 1 1 1ipart$getnext(2)#> [,1] [,2] [,3] [,4] #> [1,] 1 1 2 0 #> [2,] 1 2 1 0ipart$getnext(layout = "column", drop = FALSE)#> [,1] #> [1,] 1 #> [2,] 3 #> [3,] 0 #> [4,] 0# collect remaining compositions ipart$collect()#> [,1] [,2] [,3] [,4] #> [1,] 2 1 1 0 #> [2,] 2 2 0 0 #> [3,] 3 1 0 0 #> [4,] 4 0 0 0#> [1] 5 8 9 8 5