【发布时间】:2014-06-02 07:40:45
【问题描述】:
我想使用 R 生成随机频率(即频率必须等于 1)来模拟群体中的基因频率。我的解决方案是:
freq<- function(x,y) #random frequency generator, no defined distribution
{rn<-sample(1:y,x)
sum <- sum(rn)
for(i in 1:x){
RG[i]=rn[i]/sum}
return(RG)
}
关于如何在除法之前将总和限制为特定值(例如随机数必须等于 100)的任何建议?
【问题讨论】:
-
选择
x-1样本,然后选择1 - sum(RG)。觉得这段代码看起来效率不高。 -
您可以将现有函数重写为
function(x, y) prop.table(sample(y, x))
标签: r random-sample frequency-distribution genetics