combs.RdFinds 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)