有两列,ID和概率
ID probability
1 0.5
2 0.8
3 0.3
我想模拟每个ID的疾病状态,健康为0,生病为1。每个ID生病的可能性在第二栏。
我试过了
df$sick <- rbinom(1,1,df$probability)
但我得到全部为零或者一个。我究竟做错了什么?提前感谢您的帮助!
答案 0 :(得分:4)
您的问题是,您只将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