[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.
>>
>> 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
More information about the R-help
mailing list