[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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list