[R] Non repetitive permutations/combinations of elements
Berton Gunter
gunter.berton at gene.com
Mon May 8 23:59:45 CEST 2006
expand.grid(rep(list(c(-1, 1)), 4)) suffices I believe.
-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Marc
> Schwartz (via MN)
> Sent: Monday, May 08, 2006 2:50 PM
> To: Nameeta Lobo
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [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.d
> o?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
>
> ______________________________________________
> 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
>
More information about the R-help
mailing list