# Getting all possible combinations

15 messages
Open this post in threaded view
|

## Getting all possible combinations

 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. Any help will be highly appreciated. Thanks for your time. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 lapply(1:5, function(x) combn(groups, x)) or perhaps unlist(lapply(1:5, function(x) combn(groups, x, FUN = paste, collapse = ", "))) Best, Ista On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso <[hidden email]> 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. > > Any help will be highly appreciated. > > Thanks for your time. > > ______________________________________________ > [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 In reply to this post by Bogaso Please at least do a basic internet search before posting here. Searching on "R combinations" brought up the combn() function, which you can use in a simple loop to get your answer: > lapply(seq_len(5), FUN = function(x)combn(LETTERS[1:5], x)) ## You can use a for() loop if you prefer [[1]]      [,1] [,2] [,3] [,4] [,5] [1,] "A"  "B"  "C"  "D"  "E" [[2]]      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] "A"  "A"  "A"  "A"  "B"  "B"  "B"  "C"  "C"  "D" [2,] "B"  "C"  "D"  "E"  "C"  "D"  "E"  "D"  "E"  "E" [[3]]      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] "A"  "A"  "A"  "A"  "A"  "A"  "B"  "B"  "B"  "C" [2,] "B"  "B"  "B"  "C"  "C"  "D"  "C"  "C"  "D"  "D" [3,] "C"  "D"  "E"  "D"  "E"  "E"  "D"  "E"  "E"  "E" [[4]]      [,1] [,2] [,3] [,4] [,5] [1,] "A"  "A"  "A"  "A"  "B" [2,] "B"  "B"  "B"  "C"  "C" [3,] "C"  "C"  "D"  "D"  "D" [4,] "D"  "E"  "E"  "E"  "E" [[5]]      [,1] [1,] "A" [2,] "B" [3,] "C" [4,] "D" [5,] "E" 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:33 AM, Christofer Bogaso <[hidden email]> 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. > > Any help will be highly appreciated. > > Thanks for your time. > > ______________________________________________ > [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 In reply to this post by Bogaso On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso <[hidden email]> 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. > > ______________________________________________ > [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 ummm, Ista, it's 2^n. 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 <[hidden email]> wrote: > On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso > <[hidden email]> 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. >> >> ______________________________________________ >> [hidden email] 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. > > ______________________________________________ > [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

Open this post in threaded view
|

## Re: Getting all possible combinations

 In reply to this post by Bert Gunter-2 On Wed, Aug 23, 2017 at 12:35 PM, Bert Gunter <[hidden email]> wrote: > ummm, Ista, it's 2^n. ummm yes ughhhh. 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 <[hidden email]> wrote: >> On Wed, Aug 23, 2017 at 11:33 AM, Christofer Bogaso >> <[hidden email]> 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. >>> >>> ______________________________________________ >>> [hidden email] 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. >> >> ______________________________________________ >> [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

Open this post in threaded view
|

## Re: Getting all possible combinations

Open this post in threaded view
|

## Re: Getting all possible combinations

 > On 23 Aug 2017, at 23:12 , Bert Gunter <[hidden email]> 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. > -- Bert Doesn'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: [hidden email]  Priv: [hidden email] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 Doesn't sort by size of subgroup. I interpret the phrase I asterisked as: Your code does the following: First subsets of size 1 are given. Then all subsets of size 2. Then all subsets of size 3. etc. Your code does not do this (quite). If you meant something else, then please clarify. 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 3:14 PM, peter dalgaard <[hidden email]> wrote: > >> On 23 Aug 2017, at 23:12 , Bert Gunter <[hidden email]> 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. >> -- Bert > > Doesn'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: [hidden email]  Priv: [hidden email] > > > > > > > > > ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 On 23/08/2017 6:25 PM, Bert Gunter wrote: > Doesn't sort by size of subgroup. I interpret the phrase I asterisked as: You were fooled by Peter's tricky single negative. Duncan Murdoch > > Your code does the following: > > First subsets of size 1 are given. > Then all subsets of size 2. > Then all subsets of size 3. > etc. > > Your code does not do this (quite). > > If you meant something else, then please clarify. > > 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 3:14 PM, peter dalgaard <[hidden email]> wrote: >> >>> On 23 Aug 2017, at 23:12 , Bert Gunter <[hidden email]> 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. >>> -- Bert >> >> Doesn'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: [hidden email]  Priv: [hidden email] >> >> >> >> >> >> >> >> >> > > ______________________________________________ > [hidden email] 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. > ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting all possible combinations

 > On 24 Aug 2017, at 01:25 , Duncan Murdoch <[hidden email]> wrote: > > On 23/08/2017 6:25 PM, Bert Gunter wrote: >> Doesn't sort by size of subgroup. I interpret the phrase I asterisked as: > > You were fooled by Peter's tricky single negative. > ... Let's do this more carefully, then: M <- as.matrix(do.call(expand.grid, rep(list(0:1),5))) M # This is just 0:31 encoded as (little-endian) binary apply(M, 1, function(i) sum((2^(0:4))[i])) # now, use rows of M for logical indexing into "A"-"E" mode(M) <- "logical" (l <- apply(M,1,function(i)LETTERS[1:5][i])) # Clearly not sorted by group size: #[[1]] #character(0) # #[[2]] #[1] "A" # #[[3]] #[1] "B" # #[[4]] #[1] "A" "B" # #[[5]] #[1] "C" # requires this to sort: o <- order(sapply(l, length)) l[o] -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: [hidden email]  Priv: [hidden email] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.