生成具有相等 Ones 和 Zeros 的随机二元向量
Generate random binary vector with equal Ones and Zeros
在 R 编程语言中,假设您想创建一个包含 4 个元素的随机二进制向量。
限制条件是 1 和 0 的数量必须相等。
所以
(0,0,1,1)
(0,1,1,0)
(1,1,0,0)
...
有没有简单的方法来做到这一点?
只是随机 select 每个案例都没有从包含 2 个 0 和 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
sample(c(1,1,0,0), 4)
或归纳为:
sample(rep(c(0,1),length.out=n/2),n)
用随机的 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
在 R 编程语言中,假设您想创建一个包含 4 个元素的随机二进制向量。
限制条件是 1 和 0 的数量必须相等。
所以
(0,0,1,1)
(0,1,1,0)
(1,1,0,0)
...
有没有简单的方法来做到这一点?
只是随机 select 每个案例都没有从包含 2 个 0 和 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
sample(c(1,1,0,0), 4)
或归纳为:
sample(rep(c(0,1),length.out=n/2),n)
用随机的 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