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 ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
