微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R-如何从两个不同的概率中随机选择?

如何解决R-如何从两个不同的概率中随机选择?

我希望分配两个不同的加权概率(0.3 和 0.7)。每次(循环?)我希望 R 随机选择两个加权概率之一。然后我需要在数据帧中输出这些数据。

我尝试了很多方法都没有成功。我还是个初学者。

这是我的菜鸟代码,它不起作用。我试图随机采样列。 谢谢。

roll_it<-c(1:100)
n70<- 1; p70<-7/10
n30<- 1; p30<-3/10

for( i in roll_it){ 
        result <- c(rbinom(n30,1,p30),rbinom(n70,p70))
        
        print(result)}

sample(result(1:2,),size=2,replace = F)

解决方法

如果我正确理解您的目标,您根本不需要使用循环。只需创建两个样本,然后从该混合分布中采样即可。

set.seed(1)

cc <- cbind(rbinom(100,1,0.3),rbinom(100,0.7))
colMeans(cc)
# [1] 0.32 0.70
sample(cc,2)
# [1] 0 0
,

使用sample()

roll_it < -c(1:100)
n70<- 1
n30<- 1

probabilities <- c(0.3,0.7)
for(i in roll_it){ 
    result <- rbinom(x = n30,size = 1,prob = sample(probabilities,1))
    print(result)
}

我可以补充一下,我不确定您为什么使用 n30 和 n70。你可以只使用其中之一吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。