R 求和向量元素
我有一个命名的麻木概率向量,像这样 正如你所看到的,这个向量元素的和是1,我必须生成一个介于0和1之间的随机数,然后得到这个向量中不克服这个随机数的元素,例如: 生成的随机数:0.01 我将得到water元素,因为water在0.09和0.11之间。我附上一个图形示例R 求和向量元素,r,vector,sum,R,Vector,Sum,我有一个命名的麻木概率向量,像这样 正如你所看到的,这个向量元素的和是1,我必须生成一个介于0和1之间的随机数,然后得到这个向量中不克服这个随机数的元素,例如: 生成的随机数:0.01 我将得到water元素,因为water在0.09和0.11之间。我附上一个图形示例 我不知道如何获得这个概率的元素。我不打算输入您的所有数据,因此我将使用一个可比较的小示例: set.seed(2017) probabilidad = runif(5) probabilidad= probabilidad/s
我不知道如何获得这个概率的元素。我不打算输入您的所有数据,因此我将使用一个可比较的小示例:
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"
欢迎来到SO。请避免发布数据的图片。有一个可复制的例子,并张贴。这将使其他人更容易帮助你。