Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 求和向量元素_R_Vector_Sum - Fatal编程技术网

R 求和向量元素

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

我有一个命名的麻木概率向量,像这样

正如你所看到的,这个向量元素的和是1,我必须生成一个介于0和1之间的随机数,然后得到这个向量中不克服这个随机数的元素,例如:

生成的随机数:0.01 我将得到water元素,因为water在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"

欢迎来到SO。请避免发布数据的图片。有一个可复制的例子,并张贴。这将使其他人更容易帮助你。