如何根据r中的概率生成随机数

how to generate a random number based on probability in r

我正在尝试创建一个马尔可夫链,并希望 select 根据概率在列表中编号,可以是任何 number.for 例如,l 代表从 1-1 的概率1-2 和 1-3。 m 表示 2-1、2-2 和 2-3 的概率。 n代表从3-1,3-2,3-3的概率。

l=c(1/3,1/3,1/3)
m=c(2/5,3/5,0)
n=c(1/7,0,6/7)

序列从1开始到3结束 我可能会根据不同的机会生成不同的数字列表。 例如 (1,3),(1,2,2,1,3)(1,2,2,1,1,3)等

有谁知道R中是否有函数可以根据概率生成数字? 非常感谢。

如果您想从一个简单的函数开始,该函数以给定概率 myprob 从一系列数字 mynumbers 中进行采样,您可以使用基础 R sample 函数:

 mynumbers = c(1,2) #you numbers to sample from
 myprob = c(.25, .75) #your probabilities
 d = sample(mynumbers,
       size = 1000, #1000 times sampled from `mynumbers`
       replace = T,
       prob = myprob)

table(d) #This should show you the approximate probability of `myprob`

这有帮助吗?