[R] permutation

Warnes, Gregory R gregory_r_warnes at groton.pfizer.com
Tue Nov 26 03:54:20 CET 2002


The gregmisc package contains a function 'perumutations' which generates all
permutations of n choose r.  It also contains 'combinations' which generates
all combinations, and which appears to match your example:


> library(gregmisc)
Loading required package: MASS 

Attaching package `gregmisc':


        The following object(s) are masked from package:base :

         lowess 

> permutations(n=4,r=4)
      [,1] [,2] [,3]
 [1,]    1    2    3
 [2,]    1    2    4
 [3,]    1    3    2
 [4,]    1    3    4
 [5,]    1    4    2
 [6,]    1    4    3
 [7,]    2    1    3
 [8,]    2    1    4
 [9,]    2    3    1
[10,]    2    3    4
[11,]    2    4    1
[12,]    2    4    3
[13,]    3    1    2
[14,]    3    1    4
[15,]    3    2    1
[16,]    3    2    4
[17,]    3    4    1
[18,]    3    4    2
[19,]    4    1    2
[20,]    4    1    3
[21,]    4    2    1
[22,]    4    2    3
[23,]    4    3    1
[24,]    4    3    2
> combinations(n=4,r=3)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    4
[3,]    1    3    4
[4,]    2    3    4

See the help pages for details.

-Greg

> -----Original Message-----
> From: Pauline Gu [mailto:gu4 at llnl.gov]
> Sent: Monday, November 25, 2002 7:55 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] permutation
> 
> 
> Dear R experts,
> 
> Is there any function in R that I can calculate the 
> permutation lists?  I 
> would like to know if there is any generic one for finding all the 
> permutation of n choose k?
> 
> For example:
> 
> perms <- list(1:2)
> perms <- add.ttt(3:4, perms)
> should give me
>  > perms
> [[1]]
> [1] 3 4 1 2
> 
> [[2]]
> [1] 3 1 4 2
> 
> [[3]]
> [1] 3 1 2 4
> 
> and perms <- add.ttt(5:6, perms)
> should give me:
> [[1]]
> [1] 5 6 3 4 1 2
> 
> [[2]]
> [1] 5 3 6 4 1 2
> 
> [[3]]
> [1] 5 3 4 6 1 2
> 
> [[4]]
> [1] 5 3 4 1 6 2
> 
> [[5]]
> [1] 5 3 4 1 2 6
> 
> [[6]]
> [1] 5 6 3 1 4 2
> 
> [[7]]
> [1] 5 3 6 1 4 2
> 
> [[8]]
> [1] 5 3 1 6 4 2
> 
> [[9]]
> [1] 5 3 1 4 6 2
> 
> [[10]]
> [1] 5 3 1 4 2 6
> 
> [[11]]
> [1] 5 6 3 1 2 4
> 
> [[12]]
> [1] 5 3 6 1 2 4
> 
> [[13]]
> [1] 5 3 1 6 2 4
> 
> [[14]]
> [1] 5 3 1 2 6 4
> 
> [[15]]
> [1] 5 3 1 2 4 6
> 
> 
> This example is just for those with k=2.  How would I 
> calculate those for 
> any k?
> 
> Thanks in advance for your help.
> 
> Pauline
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
> -.-.-.-.-.-.-.-.-
> 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
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
> _._._._._._._._._
> 


LEGAL NOTICE
Unless expressly stated otherwise, this message is confidential and may be privileged. It is intended for the addressee(s) only. Access to this E-mail by anyone else is unauthorized. If you are not an addressee, any disclosure or copying of the contents of this E-mail or any action taken (or not taken) in reliance on it is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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