我想压缩矢量y
的创建。它是一些二进制二项式的rowum,每个二进制都有概率。使用rbinom()
我试图一次定义所有概率,但它并没有给我我想要的东西。在这里,我展示了手段,但对我来说最重要的是PDF。
set.seed(8659)
n <- 1e3
a <- rbinom(n, 1, .7)
b <- rbinom(n, 1, .6)
c <- rbinom(n, 1, .05)
df1 <- data.frame(a, b, c, y = a + b + c)
mean(df1$y)
# [1] 1.303
# failed attempt to do this in one command
y <- rbinom(n, 3, c(.7, .6, .05))
mean(y)
# [1] 1.376
答案 0 :(得分:1)
你可以用概率创建一个vetor并循环它并取平均值,即
set.seed(8659)
n <- 1e3
mean(rowSums(sapply(c(.7, .6, .05), function(i) rbinom(n, 1, i))))
#[1] 1.303