我正在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,但我不确定如何使用.

推荐答案

dat$prob2 <- sapply(1:nrow(dat), function(i) ppoibin(dat$k[i], dat$p[i,]))

R相关问答推荐

如何在球体上绘制轮廓线?

如何判断R中一列的值是否在所有其他列中重复?

我可以截断10字节的扩展数并转换为8字节的double吗?

如何在弹性表中为类别值的背景上色

R:连接值,而不是变量?

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

derrr mutate case_when grepl不能在R中正确返回值

如何写一个R函数来旋转最后n分钟?

RStudio中相关数据的分组箱形图

打印XTS对象

使用for循环和粘贴创建多个变量

从圆到R中的多边形的标绘雷达图

函数可以跨多个列搜索多个字符串并创建二进制输出变量

如何从向量构造一系列双边公式

使用R将简单的JSON解析为嵌套框架

数值型数据与字符混合时如何进行绑定

根据r中每行中的日期序列,使用列名序列创建新列

整理曲线图、曲线图和点图

在同一单元格中创建包含整数和百分比的交叉表

使用同一行中的前一个值填充R矩阵中的缺失值