繁体   English   中英

使用R按行进行二项式分布

[英]Binomial distribution by row using R

有两列,ID和概率

        ID probability
        1  0.5
        2  0.8
        3  0.3

我想模拟每个ID的疾病状态,其中0代表健康,1代表患病。 每个ID生病的可能性在第二列中。

我努力了

df$sick <- rbinom(1,1,df$probability)

但是我要么全为零,要么全为零。 我究竟做错了什么? 预先感谢您的帮助!

您的问题是,仅将n设置为1,因此rbinom仅返回一个值,该值可被所有行重用(根据R的标准重用规则)。 参见?rbinom 这样的事情应该可以解决问题:

df <- read.table(header=TRUE,text = "ID probability
    1  0.5
    2  0.8
    3  0.3")

df$sick <- rbinom(n = nrow(df), size = 1, prob = df$probability)
print(df)
#  ID probability sick
#1  1         0.5    1
#2  2         0.8    1
#3  3         0.3    0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM