В качестве аргумента prob
можно указать два значения, но это не гарантирует, что распределение будет равным
sample(x = c(0,1), size = 4, replace = TRUE, prob = c(0.5, 0.5))
#[1] 1 0 0 1
sample(x = c(0,1), size = 4, replace = TRUE, prob = c(0.5, 0.5))
#[1] 1 1 0 1
sample(x = c(0,1), size = 4, replace = TRUE, prob = c(0.5, 0.5))
#[1] 0 0 0 1
Вместо этого вы можете создать вектор с помощью rep
и затем использовать sample
для случайности
sample(rep(c(1, 0), 2))
#[1] 0 1 0 1
sample(rep(c(1, 0), 2))
#[1] 0 0 1 1
sample(rep(c(1, 0), 2))
#[1] 1 1 0 0
sample(rep(c(1, 0), 2))
#[1] 0 1 1 0
Это также будет работать, если у вас есть другая длина вектора, поскольку мы можем использовать times
аргумент
n <- 11
sample(rep(c(0, 1), c(n - 3, 3)))
#[1] 0 0 1 0 1 1 0 0 0 0 0
sample(rep(c(0, 1), c(n - 3, 3)))
#[1] 0 1 0 0 0 0 1 0 0 0 1
sample(rep(c(0, 1), c(n - 3, 3)))
#[1] 0 1 0 0 0 0 1 0 0 0 1