R中cut()的问题

Pet*_*ica 1 cut r

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

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

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

谢谢

彼得

car*_*cal 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
Run Code Online (Sandbox Code Playgroud)