【问题标题】:how to generate a random number based on probability in r如何根据r中的概率生成随机数
【发布时间】:2015-12-19 19:49:09
【问题描述】:

我正在尝试创建一个马尔可夫链,并希望根据概率在列表中选择数字,该数字可以是任何数字。例如,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中是否有一个函数可以根据概率生成一个数字? 非常感谢。

【问题讨论】:

    标签: r markov-chains


    【解决方案1】:

    如果您想从一个简单的函数开始,它以给定的概率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`
    

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 2021-11-01
      • 2012-09-03
      • 1970-01-01
      • 2018-05-23
      • 2015-07-31
      相关资源
      最近更新 更多