R中cut()的问题

时间:2011-02-02 15:06:13

标签: r cut

我想根据我提供的概率将主题分配到课程。我将在各种情况下使用不同的值来执行此操作。有时,我希望特定类的概率为0.我一直在使用

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

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

由于

彼得

1 个答案:

答案 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