1

我想根据我提供的概率将科目分配给班级。我将在各种情况下使用不同的值来执行此操作。有时,我希望特定类的概率为 0。我一直在使用

classlist <- cut(runif(p), c(0, pdrop, ptitrate, pcomplete, pnoise, 1), labels = c("D", "T", "C", "N", "O"))

但是当两个 p 变量相同时,这会失败。我可以使它们不同,例如 pdrop = .2 ptitrate = .200001。但是有更好的方法吗?

谢谢

彼得

4

1 回答 1

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
于 2011-02-02T15:27:09.737 回答