# [R] Vector with zeros and ones

Marc Schwartz marc_schwartz at me.com
Tue Apr 23 01:38:13 CEST 2013

```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.
>>
>>
>> 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

```