我是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。
答案 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