我想根据我提供的概率将主题分配到课程。我将在各种情况下使用不同的值来执行此操作。有时,我希望特定类的概率为0.我一直在使用
classlist <- cut(runif(p), c(0, pdrop, ptitrate, pcomplete, pnoise, 1), labels = c("D", "T", "C", "N", "O"))
但是当两个p变量相同时,这会失败。我可以通过最小量使它们不同,例如pdrop = .2 ptitrate = .200001。但是有更好的方法吗?
由于
彼得
答案 0 :(得分:6)
我建议sample()
:
> p <- 100
> groups <- c("D", "T", "C", "N", "O")
> probVec <- c(0.2, 0.2, 0.3, 0.25, 0.05)
> classlist <- factor(sample(groups, size=p, replace=TRUE, prob=probVec))
> table(classlist)
classlist
C D N O T
26 16 28 5 25