我正在try 将Poibin包中的ppoibin
(泊松二项概率)函数应用于数据帧中的每一行.该函数有两个参数:一个整数和一个概率向量.我的数据采用以下形式:
p <- matrix(c(0.046, 0.046, 0.323,
0.122, 0.122, 0.490,
0.122, 0.122, 0.490),
3 , 3, byrow = TRUE)
dat <- data.frame(k = c(0, 1, 0))
dat$p <- p
在每一行中,k
是我要计算概率的整数.值p[,1]
、p[,2]
、……p[,n]
是该函数的概率参数.
我可以在循环中逐行执行此操作,并获得正确的结果:
for (i in c(1:nrow(dat))) {
dat$prob[i] <- ppoibin(dat$k[i], dat$p[i,])
}
我想避免这种循环.但是,如果我try 使用以下命令将该函数直接应用于数据帧
dat$prob2 <- ppoibin(dat$k, dat$p[,])
我得到了一个错误的结果.我怀疑这需要使用apply
或更多的mapply
,但我不确定如何使用.