使用 R 按行进行二项式分布
Binomial distribution by row using R
有两列,ID和probability
ID probability
1 0.5
2 0.8
3 0.3
我想模拟每个ID的生病状态,0代表健康,1代表生病。每个ID生病的概率在第二列。
我试过了
df$sick <- rbinom(1,1,df$probability)
但我要么全为 0,要么全为 1。我究竟做错了什么?预先感谢您的帮助!
你的问题是,你只将 n
设置为 1,因此 rbinom
只有 return 一个值,它被所有行重用(根据 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
有两列,ID和probability
ID probability
1 0.5
2 0.8
3 0.3
我想模拟每个ID的生病状态,0代表健康,1代表生病。每个ID生病的概率在第二列。
我试过了
df$sick <- rbinom(1,1,df$probability)
但我要么全为 0,要么全为 1。我究竟做错了什么?预先感谢您的帮助!
你的问题是,你只将 n
设置为 1,因此 rbinom
只有 return 一个值,它被所有行重用(根据 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