# [R] Combinations

Matthew Wiener mcw at ln.nimh.nih.gov
Tue Dec 14 15:11:32 CET 1999

```Alex:  Bill Venables sent me these functions in response to a similar
query of mine a few months ago (you can find the full reply by searching
the R archives under the heading "avoiding loops, gaining generality"):

subsets <- function(r, n, v = 1:n)
if(r <= 0) NULL else
if(r >= n) v[1:n] else
rbind(cbind(v[1], Recall(r - 1, n - 1, v[-1])),
Recall(r, n - 1, v[-1]))

permutations <- function(n, v = 1:n) {
if(n == 1)
return(v[1])
X <- NULL
for(i in 1:n)
X <- rbind(X,
cbind(v[i], permutations(n - 1, v[-i])))
X
}

Hope this helps.

Matt

On Mon, 13 Dec 1999, a s wrote:

> I need some help here.
> >From a vector of variable length (say, c(A,B,C,D), I need to obtain all
> posible combinations (order doesn't matter) of the elements.
> I would like a function such as:
> function(x,c(A,B,C,D))
> to give a matrix (for x=3) like:
> A B C
> A B D
> A C D
> B C D
>
> or for x=2
> A B
> A C
> A D
> B C
> B D
> C D
>
> And so on.
> Any ideas??
>
> Thank you,
> Alex Ahgarin
> Data Management
> I.R.W. Co.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```