On Apr 22, 2013, at 6:28 PM, Marc Schwartz <marc_schwa...@me.com> wrote:
> On Apr 22, 2013, at 6:21 PM, Ayyappa <ayyapp...@gmail.com> wrote: > >> Dear group, >> >> I want to generate a vector of 10 elements that always has 20% zeroes, but >> with a random ordering of zeroes and ones. Can you please suggest a function >> to do that in R? I tried 'sample' function but the 20% zeros was not always >> guaranteed. >> >> Thanks for your help. >> >> Regards, >> Ayyappa > > > Predefine your source vector with the fixed distribution that you desire: > > Vec <- c(rep(0, 2), rep(1, 8)) > >> Vec > [1] 0 0 1 1 1 1 1 1 1 1 > > Then sample() from that vector: > > set.seed(1) > >> sample(Vec) > [1] 1 1 1 1 0 1 1 1 1 0 > >> sample(Vec) > [1] 1 0 1 1 1 1 1 1 0 1 > >> sample(Vec) > [1] 1 0 1 0 1 1 1 1 1 1 > >> sample(Vec) > [1] 1 1 1 0 1 1 1 0 1 1 > BTW, I should have mentioned, if you want to sample() as above repeatedly, use ?replicate: # Repeat the above sampling 5 times: set.seed(1) > replicate(5, sample(Vec)) [,1] [,2] [,3] [,4] [,5] [1,] 1 1 1 1 1 [2,] 1 0 0 1 1 [3,] 1 1 1 1 1 [4,] 1 1 0 0 1 [5,] 0 1 1 1 1 [6,] 1 1 1 1 1 [7,] 1 1 1 1 0 [8,] 1 1 1 0 0 [9,] 1 0 1 1 1 [10,] 0 1 1 1 1 Regards, Marc ______________________________________________ R-help@r-project.org 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.