我需要一些非常简单的东西,在我看来,我的解决方案有太多的步骤(考虑到R已经完成统计):
我需要的是N个概率权重(在0和1之间)的数组,总计为1。什么是简单和/或有效的解决方案?
我的解决方案:
N <- 40
weights <- runif(40)
f <- 1/sum(weights)
weights <- f*weights
print(sum(weights))
答案 0 :(得分:1)
解决方案:
您可以使用prop.table函数和runif函数:
weights <- prop.table(runif(N))
与跑步相同
w <- runif(N); weights <- w / sum(w)
说明:
runif
函数生成N
随机数,范围从0到1 prop.table
重新缩放它们,使总和等于1(与w / sum(w)相同)