R中有多个不同的随机样本

时间:2015-10-25 09:46:57

标签: r vector random boolean sample

我是R的新手,我有一个问题:

choice <- c(TRUE, FALSE, FALSE, FALSE)
rep(sample(choice, size = 4, replace=FALSE), times = n)

总是重复相同的向量,例如(FALSE,TRUE,FALSE,FALSE)

但是,我希望在一个新向量中有n 不同的向量选择的随机样本(replace必须为FALSE,因为4个元素中只有1个应为TRUE)。

我应该选择哪种功能?我不允许使用for-loops。

1 个答案:

答案 0 :(得分:1)

您可以使用replicate。它返回一个矩阵,然后您可以将其转换为矢量。

choice <- c(TRUE, FALSE, FALSE, FALSE)
n <- 3
set.seed(42) # for reproducibility
as.vector(replicate(n, sample(choice, size = 4, replace=FALSE)))
#[1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE