0
我有概率的一个名为麻木载体,这样Summatory矢量元素
就像你看到的,这个向量元素是1的总和,我不得不产生0-1之间的随机数1,让这个载体不克服这个随机数,例如元素:
随机数生成:0.01 我会得到水元素,因为水是0.09和0.11之间。我附上一个生动的例子
我不知道如何得到这个概率的元素。
我有概率的一个名为麻木载体,这样Summatory矢量元素
就像你看到的,这个向量元素是1的总和,我不得不产生0-1之间的随机数1,让这个载体不克服这个随机数,例如元素:
随机数生成:0.01 我会得到水元素,因为水是0.09和0.11之间。我附上一个生动的例子
我不知道如何得到这个概率的元素。
我不打算在键入您的所有数据,所以我会用一个比较的,小例子:
set.seed(2017)
probabilidad = runif(5)
probabilidad= probabilidad/sum(probabilidad)
names(probabilidad) = LETTERS[1:5]
probabilidad
A B C D E
0.30918062 0.17969799 0.15695684 0.09655216 0.25761238
sum(probabilidad)
[1] 1
我们可以用cumsum
建立一个向量,将你想要的选择。但是cumsum
会给出区域的上限,我们想要下限,所以我们稍微调整一下输出。
Test = c(0, cumsum(probabilidad)[-length(probabilidad)])
names(Test) = names(probabilidad)
Test
A B C D E
0.0000000 0.2533938 0.5129561 0.5922145 0.8222417
现在你可以很容易地测试随机数对分布。
(Selector = runif(1))
[1] 0.5190959
names(probabilidad)[max(which(Selector > Test))]
[1] "C"
非常感谢! :))))) – Draggluon
欢迎来到SO。请避免发布数据图片。有一个[看看这个链接](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)并发布一个可重现的例子。这会让别人更容易帮助你。 – Sotos