combs.Rd
Finds all unordered combinations of k
elements from vector
v
.
combs(v,k)
combs(v,k)
(where v
has length n
) creates a matrix with
\(\frac{n!}{(n-k)! k!}\) (n
choose k
) rows
and k
columns containing all possible combinations of n
elements
taken k
at a time.
I discovered recently that R packages already have two functions with
similar capabilities:
combinations
from gTools package and
Also similar to Matlab's nchoosek
function (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/nchoosek.html)
combs(2:5, 3) # display examples
#> [,1] [,2] [,3]
#> [1,] 2 3 4
#> [2,] 2 3 5
#> [3,] 2 4 5
#> [4,] 3 4 5
combs(c("cats", "dogs", "mice"), 2)
#> [,1] [,2]
#> [1,] "cats" "dogs"
#> [2,] "cats" "mice"
#> [3,] "dogs" "mice"
a = combs(1:4, 2)
b = matrix( c(1,1,1,2,2,3,2,3,4,3,4,4), 6, 2)
stopifnot(a==b)