生成具有相等的Ones和Zeros的随机二进制向量

时间:2015-04-24 05:44:02

标签: r random vector

在R编程语言中,假设您要创建一个包含4个元素的随机二进制向量。

约束是一个和零的数量必须相等。

所以

(0,0,1,1)
(0,1,1,0)
(1,1,0,0)
...

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:7)

只需从包含2 0&2和2 1的集合中随机选择每个案例而不进行替换。

sample(rep(0:1,each=2))
#[1] 0 1 1 0

始终有效:

replicate(3,sample(rep(0:1,each=2)),simplify=FALSE)
#[[1]]
#[1] 1 0 0 1
#
#[[2]]
#[1] 0 1 0 1
#
#[[3]]
#[1] 1 1 0 0

答案 1 :(得分:2)

sample(c(1,1,0,0), 4)

或概括为:

sample(rep(c(0,1),length.out=n/2),n)

答案 2 :(得分:0)

使用随机的1和0创建随机二进制向量:

#create a binary vector:
result <- vector(mode="logical", length=4);

#loop over all the items:
for(i in 1:4){
    #for each item, replace it with 0 or 1
    result[i] = sample(0:1, 1);
}
print(result);

打印:

[1] 0 1 1 0