Dear All Suppose a sequence of length 10 generated by the following rule: the first element is 0 with 50% of probability or 1 with the same probability; the second element likewise; and so on. Is there some R command to obtain all possible different sequences formed by the above rule? I am aware that one could write a small program to do that, but I am speculating about whether a command is already existent. Thanks in advance, Paul
Paul f <- function(n){expand.grid(rep(list(0:1),n))} f(10) [snip] HTH Robin On 17 Apr 2007, at 15:26, Paul Smith wrote:> Dear All > > Suppose a sequence of length 10 generated by the following rule: the > first element is 0 with 50% of probability or 1 with the same > probability; the second element likewise; and so on. > > Is there some R command to obtain all possible different sequences > formed by the above rule? I am aware that one could write a small > program to do that, but I am speculating about whether a command is > already existent. > > Thanks in advance, > > Paul > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code.-- Robin Hankin Uncertainty Analyst National Oceanography Centre, Southampton European Way, Southampton SO14 3ZH, UK tel 023-8059-7743
Paul Smith wrote:> Dear All > > Suppose a sequence of length 10 generated by the following rule: the > first element is 0 with 50% of probability or 1 with the same > probability; the second element likewise; and so on. > > Is there some R command to obtain all possible different sequences > formed by the above rule? I am aware that one could write a small > program to do that, but I am speculating about whether a command is > already existent.levels(interaction(c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), sep=""))> Thanks in advance, > > Paul > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code.-- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
On 4/17/07, Robin Hankin <r.hankin at noc.soton.ac.uk> wrote:> f <- function(n){expand.grid(rep(list(0:1),n))} > f(10) > [snip]Thanks, Robin, that is it! Paul> On 17 Apr 2007, at 15:26, Paul Smith wrote: > > > Dear All > > > > Suppose a sequence of length 10 generated by the following rule: the > > first element is 0 with 50% of probability or 1 with the same > > probability; the second element likewise; and so on. > > > > Is there some R command to obtain all possible different sequences > > formed by the above rule? I am aware that one could write a small > > program to do that, but I am speculating about whether a command is > > already existent. > > > > Thanks in advance, > > > > Paul > > > > ______________________________________________ > > 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 > > and provide commented, minimal, self-contained, reproducible code. > > -- > Robin Hankin > Uncertainty Analyst > National Oceanography Centre, Southampton > European Way, Southampton SO14 3ZH, UK > tel 023-8059-7743 > >
On 17-Apr-07 14:26:15, Paul Smith wrote:> Dear All > > Suppose a sequence of length 10 generated by the following rule: > the first element is 0 with 50% of probability or 1 with the > same probability; the second element likewise; and so on.You don't say whether the elements of the sequence are independent, but plausibility suggests that this may be what you intend. In which case:> Is there some R command to obtain all possible different sequences > formed by the above rule?while(TRUE){print(sample(c(0,1),10,replace=TRUE))} and just wait! (Expected time to wait: about 7700 iterations, I think).> I am aware that one could write a small > program to do that, but I am speculating about whether a command > is already existent.Taking my tongue out of my cheek, however, it's not clear what you are really asking for. If really you want to generate those sequences randomly according to your probabilistic description, retaining as you go only those which have not been sampled before, until you have all 2^10 possible sequences, then my "suggestion" above is not the way to do it! And as far as I know there is not an R function which does this by proceeding in exactly that way. Better to recognise that your random scheme means that each possible sequence is equally likely with all the others, and so you can do the equivalent by sampling 1024 from (1:1024) without replacement, i.e. putting (1:1024) in random order. Then the binary representation of each element is such a sequence. So S<-sample((1:1024),1024) is an existing R function which does the heart of the job. (It remains to convert each integer K in S to binary form, but as far as I know there is not an R function to convert an integer K directly into a vector of binary 0/1 with a given number of digits, i.e. not the equivalent of to.binary(13,10) --> c(0,0,0,0,0,0,1,1,0,1) except maybe in some special package, so I think you'll end up writing your own for this bit anyway). It gets more interesting if your example is just an illustraton, and what you really want is more general. E.g. if the different 0/1 outcomes in the 10 positions do not have the same probabilities, but are still independent, then you have to do more spadework (and again I'm pretty sure there is no simple function in R to do it). In that case it's definitely a programming job. Even more so if the successive 0/1 outcomes are not independent, whether P[0] = P[1] = 0.5 in each position or not. So again a prgramming job. Since you seem to be quite willling to do the programming if necessary, I won't try to spoil your fun on that front! Best wishes, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 17-Apr-07 Time: 16:40:42 ------------------------------ XFMail ------------------------------