如果我必须创建一个包含19名学生的表格,每个学生都有10个数据,表明他们是否准时上课。我想按时间率100%按时间率,90%按时间率和80%按时间率随机分配给每个学生。我想不出可以将每个人的准时百分比随机化的方法。(例如,学生#1的准时率为90%,而学生#2的准时率为70%等)这就是我的意思如果所有学生的准时率达到90%,我们会想出来。
ID<-data.frame(rep(1:19,each=10))
ID$DOSE<- c(replicate(19,
c(sample(rep(c("on time","late")),size=10,replace=TRUE,prob=c(0.90,0.10)))))
提前谢谢!
答案 0 :(得分:1)
对于19名学生中的每一名,只需绘制随机准时率
probs<-c(.9,.8,.7)
onTimeRates<-sample(probs,19,replace=TRUE)
[1] 0.8 0.7 0.7 0.7 0.7 0.8 0.8 0.9 0.8 0.7 0.8 0.9 0.9 0.8 0.8 0.9 0.9 0.7 0.7
然后,对于这些学生中的每一个,按时间&#34;绘制10个数据,并提供相应的概率
x<-sapply(onTimeRates,function(x) sample(c('punctual','late'),10,replace=TRUE,prob=c(x,1-x) ))
然后将此变量x
折叠到您想要的列中。
ID$DOSE<-matrix(x,ncol=1)
答案 1 :(得分:0)
您可以尝试为学生分配不同的概率,然后使用其随机行为
on time
或late
1创建data.frame
DF = data.frame(ID = rep(1:19,each=10))
2为每个学生分配概率:
DF$prob = rep(sample((70:100)/100,19,replace=TRUE),each=10)
3使用概率来抽样on time
或late
:
DF$attend = sapply(DF$prob,function(x) {sample(c("on time","late"),prob = c(x,1-x),1)})