Konstantin Tretiakov
2013-Nov-07 13:38 UTC
[R] all combinations with replacement not ordered
Hello! I need to obtain all possible combinations with replacement when order is not important. E.g. I have a population x{1,2,3}. So I can get (choose(3+3-1,3)=) 10 combinations from this population with 'size=3'. How can I get a list of all that combinations? I have tried 'expand.grid()' and managed to get only samples where order is important. 'combn()' gave me samples without replacement. Best regards, Konstantin Tretyakov. [[alternative HTML version deleted]]
Is this what you want? f <- function (x, m) combn(x + m - 1, m) - seq_len(m) + 1 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf > Of Konstantin Tretiakov > Sent: Thursday, November 07, 2013 5:38 AM > To: r-help at r-project.org > Subject: [R] all combinations with replacement not ordered > > Hello! > > I need to obtain all possible combinations with replacement when order is > not important. > E.g. I have a population x{1,2,3}. > So I can get (choose(3+3-1,3)=) 10 combinations from this population with > 'size=3'. > How can I get a list of all that combinations? > > I have tried 'expand.grid()' and managed to get only samples where order is > important. > 'combn()' gave me samples without replacement. > > Best regards, > Konstantin Tretyakov. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
On 07-Nov-2013 13:38:29 Konstantin Tretiakov wrote:> Hello! > > I need to obtain all possible combinations with replacement when > order is not important. > E.g. I have a population x{1,2,3}. > So I can get (choose(3+3-1,3)=) 10 combinations from this population > with 'size=3'. > How can I get a list of all that combinations? > > I have tried 'expand.grid()' and managed to get only samples where > order is important. > 'combn()' gave me samples without replacement. > > Best regards, > Konstantin Tretyakov.>From your description I infer that, from {1,2,3}, you want the result:1 1 1 1 1 2 1 1 3 1 2 2 1 2 3 1 3 3 2 2 2 2 2 3 2 3 3 3 3 3 The following will do that: u <- c(1,2,3) unique(t(unique(apply(expand.grid(u,u,u),1,sort),margin=1))) # [,1] [,2] [,3] # [1,] 1 1 1 # [2,] 1 1 2 # [3,] 1 1 3 # [4,] 1 2 2 # [5,] 1 2 3 # [6,] 1 3 3 # [7,] 2 2 2 # [9,] 2 3 3 #[10,] 3 3 3 There may be a simpler way! Ted. ------------------------------------------------- E-Mail: (Ted Harding) <Ted.Harding at wlandres.net> Date: 07-Nov-2013 Time: 17:04:50 This message was sent by XFMail