> On 23 Aug 2017, at 20:51 , Ista Zahn <istazahn at gmail.com> wrote: > > On Wed, Aug 23, 2017 at 12:35 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote: >> ummm, Ista, it's 2^n. > > ummm yes ughhhh. >You didn't really say otherwise: sum(choose(n,0:n)) == 2^n by the binomial expansion of (1+1)^n (but you knew that) This points to a different algorithm where you write 0:(2^n-1) as n-digit binary numbers and chose items corresponding to the 1s. That won't give the combinations sorted by size of selected subgroup though. Something like this: M <- as.matrix(do.call(expand.grid, rep(list(0:1),5))) mode(M) <- "logical" apply(M,1,function(i)LETTERS[1:5][i]) -pd> My point is, if the number of groups is large, check it before hand. > If you can check it without embarrassing yourself in public like I did > that's even better. > > Best, > Ista > >> >> Cheers, >> Bert >> >> >> Bert Gunter >> >> "The trouble with having an open mind is that people keep coming along >> and sticking things into it." >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >> >> >> On Wed, Aug 23, 2017 at 8:52 AM, Ista Zahn <istazahn at gmail.com> wrote: >>> On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso >>> <bogaso.christofer at gmail.com> wrote: >>>> Hi again, >>>> >>>> I am exploring if R can help me to get all possible combinations of >>>> members in a group. >>>> >>>> Let say I have a group with 5 members : A, B, C, D, E >>>> >>>> Now I want to generate all possible unique combinations with all >>>> possible lengths from that group e.g. >>>> >>>> 1st combination : A >>>> 2nd combination : B >>>> ..... >>>> 5th combination : E >>>> 6th combination : A, B >>>> 7th combination : B, C >>>> .... >>>> last combination: A, B, C, D, E >>>> >>>> Ideally, I have a fairly large group so am looking for some >>>> programmatic way to generate all possible combinations. >>> >>> Be careful, the number of combinations grows pretty quickly. You can >>> calculate the number ahead of time with >>> >>> sum(choose(n, 1:n)) >>> >>> where n is the number of values in your group. >>> >>> --Ista >>> >>>> >>>> Any help will be highly appreciated. >>>> >>>> Thanks for your time. >>>> >>>> ______________________________________________ >>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Inline. -- Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Wed, Aug 23, 2017 at 1:58 PM, peter dalgaard <pdalgd at gmail.com> wrote:> >> On 23 Aug 2017, at 20:51 , Ista Zahn <istazahn at gmail.com> wrote: >> >> On Wed, Aug 23, 2017 at 12:35 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote: >>> ummm, Ista, it's 2^n. >> >> ummm yes ughhhh. >> > > You didn't really say otherwise: sum(choose(n,0:n)) == 2^n by the binomial expansion of (1+1)^n (but you knew that) > > This points to a different algorithm where you write 0:(2^n-1) as n-digit binary numbers and chose items corresponding to the 1s. That won't give the combinations **sorted by size of selected subgroup** though. Something like this:No it doesn't. -- Bert> > M <- as.matrix(do.call(expand.grid, rep(list(0:1),5))) > mode(M) <- "logical" > apply(M,1,function(i)LETTERS[1:5][i]) > > -pd > > >> My point is, if the number of groups is large, check it before hand. >> If you can check it without embarrassing yourself in public like I did >> that's even better. >> >> Best, >> Ista >> >>> >>> Cheers, >>> Bert >>> >>> >>> Bert Gunter >>> >>> "The trouble with having an open mind is that people keep coming along >>> and sticking things into it." >>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >>> >>> >>> On Wed, Aug 23, 2017 at 8:52 AM, Ista Zahn <istazahn at gmail.com> wrote: >>>> On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso >>>> <bogaso.christofer at gmail.com> wrote: >>>>> Hi again, >>>>> >>>>> I am exploring if R can help me to get all possible combinations of >>>>> members in a group. >>>>> >>>>> Let say I have a group with 5 members : A, B, C, D, E >>>>> >>>>> Now I want to generate all possible unique combinations with all >>>>> possible lengths from that group e.g. >>>>> >>>>> 1st combination : A >>>>> 2nd combination : B >>>>> ..... >>>>> 5th combination : E >>>>> 6th combination : A, B >>>>> 7th combination : B, C >>>>> .... >>>>> last combination: A, B, C, D, E >>>>> >>>>> Ideally, I have a fairly large group so am looking for some >>>>> programmatic way to generate all possible combinations. >>>> >>>> Be careful, the number of combinations grows pretty quickly. You can >>>> calculate the number ahead of time with >>>> >>>> sum(choose(n, 1:n)) >>>> >>>> where n is the number of values in your group. >>>> >>>> --Ista >>>> >>>>> >>>>> Any help will be highly appreciated. >>>>> >>>>> Thanks for your time. >>>>> >>>>> ______________________________________________ >>>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>> 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. >>>> >>>> ______________________________________________ >>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > > > > > > > >
> On 23 Aug 2017, at 23:12 , Bert Gunter <bgunter.4567 at gmail.com> wrote: > >> This points to a different algorithm where you write 0:(2^n-1) as n-digit binary numbers and chose items corresponding to the 1s. That won't give the combinations **sorted by size of selected subgroup** though. Something like this: > > No it doesn't. > -- BertDoesn't what? Do what I say it won't?? -pd -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com