gpt4 book ai didi

r - 以给定的概率生成随机数

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:38 24 4
gpt4 key购买 nike

我有一个问题,基本上是以下 matlab 问题的矢量化 R 解决方案:

Generate random number with given probability matlab

我能够根据随机统一数和每个事件的给定概率(总和为 100% - 可能只发生一个事件)生成随机事件结果:

sum(runif(1,0,1) >= cumsum(wdOff))

但是该函数只采用单个随机统一数,而我希望它采用随机统一数的向量并输出这些条目的相应事件。

所以基本上我在 matlab 中寻找 Oleg 向量化解决方案的 R 解决方案(从评论到 matlab 解决方案):

“矢量化解决方案:sum(bsxfun(@ge, r, cumsum([0, prob]),2) 其中 r 是列向量,prob 一个行向量。– Oleg"

如果您需要更多信息,请告诉我。

最佳答案

你可以只做一个加权随机样本,而不用担心你的 cumsum 方法:

sample(c(1, 2, 3), size = 100, replace = TRUE, prob = c(0.5, 0.1, 0.4))

如果你已经有了数字,你也可以这样做:

x <- runif(10, 0, 1)
as.numeric(cut(x, breaks = c(0, 0.5, 0.6, 1)))

关于r - 以给定的概率生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com