Nameeta Lobo
2006-May-08 21:32 UTC
[R] Non repetitive permutations/combinations of elements
Hello all, I am trying to create a matrix of 1s and -1s without any repetitions for a specified number of columns. e.g. 1s and -1s for 3 columns can be done uniquely in 2^3 ways. -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 and for 4 columns in 2^4 ways and so on. I finally used the function combn([0 1],3) that I found at the following link http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=7147&objectType=FILE written by Jos van der Geest in Matlab which generated the above. How can I do this is R? I have looked at permn and combn in the combinat library and permutations and combinations in the gtools library and I am still confused as to how to get it to work. Any suggestions will be truly appreciated. Thank you Nameeta ------------------------------------------------- This email is intended only for the use of the individual or...{{dropped}}
Try expand.grid: expand.grid( c(-1,1), c(-1,1), c(-1,1) ) -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.snow at intermountainmail.org (801) 408-8111 -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Nameeta Lobo Sent: Monday, May 08, 2006 3:33 PM To: r-help at stat.math.ethz.ch Subject: [R] Non repetitive permutations/combinations of elements Hello all, I am trying to create a matrix of 1s and -1s without any repetitions for a specified number of columns. e.g. 1s and -1s for 3 columns can be done uniquely in 2^3 ways. -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 and for 4 columns in 2^4 ways and so on. I finally used the function combn([0 1],3) that I found at the following link http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId =7147&objectType=FILE written by Jos van der Geest in Matlab which generated the above. How can I do this is R? I have looked at permn and combn in the combinat library and permutations and combinations in the gtools library and I am still confused as to how to get it to work. Any suggestions will be truly appreciated. Thank you Nameeta ------------------------------------------------- This email is intended only for the use of the individual\ o...{{dropped}}
Marc Schwartz (via MN)
2006-May-08 21:50 UTC
[R] Non repetitive permutations/combinations of elements
On Mon, 2006-05-08 at 16:32 -0500, Nameeta Lobo wrote:> Hello all, > > I am trying to create a matrix of 1s and -1s without any repetitions for a > specified number of columns. > e.g. 1s and -1s for 3 columns can be done uniquely in 2^3 ways. > -1 -1 -1 > -1 -1 1 > -1 1 -1 > -1 1 1 > 1 -1 -1 > 1 -1 1 > 1 1 -1 > 1 1 1 > and for 4 columns in 2^4 ways and so on. > > I finally used the function combn([0 1],3) that I found at the following link > http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=7147&objectType=FILE > written by Jos van der Geest in Matlab which generated the above. > > > How can I do this is R? I have looked at permn and combn in the combinat library > and permutations and combinations in the gtools library and I am still confused > as to how to get it to work. > > Any suggestions will be truly appreciated. > > Thank you > > Nameeta >With just two elements in the source vector, it may be easiest to just use expand.grid() and coerce the result to a matrix:> as.matrix(expand.grid(rep(list(c(-1, 1)), 3)))Var1 Var2 Var3 1 -1 -1 -1 2 1 -1 -1 3 -1 1 -1 4 1 1 -1 5 -1 -1 1 6 1 -1 1 7 -1 1 1 8 1 1 1 Just adjust the final value of '3' to the number of columns that you wish to have:> as.matrix(expand.grid(rep(list(c(-1, 1)), 4)))Var1 Var2 Var3 Var4 1 -1 -1 -1 -1 2 1 -1 -1 -1 3 -1 1 -1 -1 4 1 1 -1 -1 5 -1 -1 1 -1 6 1 -1 1 -1 7 -1 1 1 -1 8 1 1 1 -1 9 -1 -1 -1 1 10 1 -1 -1 1 11 -1 1 -1 1 12 1 1 -1 1 13 -1 -1 1 1 14 1 -1 1 1 15 -1 1 1 1 16 1 1 1 1 HTH, Marc Schwartz
Gabor Csardi
2006-May-08 21:53 UTC
[R] Non repetitive permutations/combinations of elements
Alternate solution with the combinat package: m <- hcube(c(2, 2, 2)) m[m==1] <- -1 m[m==2] <- 1 Gabor On Mon, May 08, 2006 at 03:45:37PM -0600, Greg Snow wrote:> Try expand.grid: > > expand.grid( c(-1,1), c(-1,1), c(-1,1) ) > > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > greg.snow at intermountainmail.org > (801) 408-8111 > > > -----Original Message----- > From: r-help-bounces at stat.math.ethz.ch > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Nameeta Lobo > Sent: Monday, May 08, 2006 3:33 PM > To: r-help at stat.math.ethz.ch > Subject: [R] Non repetitive permutations/combinations of elements > > > Hello all, > > I am trying to create a matrix of 1s and -1s without any repetitions for > a specified number of columns. > e.g. 1s and -1s for 3 columns can be done uniquely in 2^3 ways. > -1 -1 -1 > -1 -1 1 > -1 1 -1 > -1 1 1 > 1 -1 -1 > 1 -1 1 > 1 1 -1 > 1 1 1 > and for 4 columns in 2^4 ways and so on. > > I finally used the function combn([0 1],3) that I found at the following > link > http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId > =7147&objectType=FILE > written by Jos van der Geest in Matlab which generated the above. > > > How can I do this is R? I have looked at permn and combn in the combinat > library and permutations and combinations in the gtools library and I am > still confused as to how to get it to work. > > Any suggestions will be truly appreciated. > > Thank you > > Nameeta > > > > ------------------------------------------------- > This email is intended only for the use of the individual\ o...{{dropped}} > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html-- Csardi Gabor <csardi at rmki.kfki.hu> MTA RMKI, ELTE TTK