Vector with zeros and ones
On Apr 22, 2013, at 6:28 PM, Marc Schwartz <marc_schwartz at me.com> wrote:
On Apr 22, 2013, at 6:21 PM, Ayyappa <ayyappach at 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