【发布时间】:2018-04-04 09:33:48
【问题描述】:
有两列,ID和概率
ID probability
1 0.5
2 0.8
3 0.3
我想模拟每个 ID 的疾病状态,0 代表健康,1 代表生病。每个 ID 生病的概率在第二列。
我试过了
df$sick <- rbinom(1,1,df$probability)
但我要么全零要么全一。我究竟做错了什么?提前感谢您的帮助!
【问题讨论】:
-
试试
rbinom(nrow(df), 1, df$probability)。由于您正在模拟 only one 随机二项式数字,因此整个列向量sick等于该数字。你必须模拟nrow(df)数字才能得到你想要的。 -
我正在尝试模拟我的 ID 是否生病/健康,因此选择了二项分布。所以 ID1 有 50% 的几率生病,ID2 有 80% 等等。我将运行模拟几百次,想知道 ID1 生病/健康的次数(0/1)。我知道如何循环,但无法为每个 ID 分配不同的结果概率。
-
参数
prob是矢量化的,因此您不必循环。这 3 个随机数中的每一个都将使用不同的prob(向量中的值df$probability)生成。
标签: r simulation distribution