在R中存储pbinom的输出(具有多个成功概率)

在R中存储pbinom的输出(具有多个成功概率),r,for-loop,probability,R,For Loop,Probability,我在R中使用pbinom来确定多个结果值的p值和成功概率: 1 - pbinom(1:2, 21, c(0.02, 0.05)) 1:2表示观察计数的数量,21表示样本量,0.02和0.05表示成功的概率。但是,上述命令的输出为: [1] 0.06534884 0.08491751 这些值表示以下概率: 1 - pbinom(1, 21, 0.02) & 1 - pbinom(2, 21, 0.05) 分别 我希望获得以下输出:1-pbinom(1:2,21,0.02)和1-pbi

我在R中使用
pbinom
来确定多个结果值的p值和成功概率:

1 - pbinom(1:2, 21, c(0.02, 0.05))
1:2
表示观察计数的数量,21表示样本量,
0.02
0.05
表示成功的概率。但是,上述命令的输出为:

[1] 0.06534884 0.08491751
这些值表示以下概率:

1 - pbinom(1, 21, 0.02) & 1 - pbinom(2, 21, 0.05)
分别

我希望获得以下输出:
1-pbinom(1:2,21,0.02)
1-pbinom(1:2,21,0.05)
以便我获得输出:

[1] 0.065348840 0.008125299 ## pvalues for 1 - pbinom(1:2, 21, 0.02)
[1] 0.28302816 0.08491751 ## pvalues for 1 - pbinom(1:2, 21, 0.05)
我的实际数据集非常长,所以我不能为每个成功的概率键入代码

我还尝试了使用for循环:

output=c()
for (i in 1:2) {
output[i]=(1 - pbinom(i, 21, c(0.02, 0.05)))
}
但我得到以下警告信息:

1:在输出中[i]=(1-pbinom(i,21,c(0.02,0.05)):
要替换的项目数不是替换长度的倍数
2:在输出中[i]=(1-pbinom(i,21,c(0.02,0.05)):
要替换的项目数不是替换长度的倍数

我意识到这个问题可能很难解释,但任何帮助都将不胜感激。 谢谢。

使用sapply:

t(sapply( c(0.02, 0.05), function(x) 1 - pbinom(1:2, 21, x)))

#             [,1]        [,2]
# [1,] 0.06534884 0.008125299
# [2,] 0.28302816 0.084917514
嗨,你可以试试这个

matrix(1-pbinom(c(1:2,1:2), size=21, prob = rep(c(0.02,0.05), each=2)), ncol=2, byrow=TRUE)

PS:这个错误意味着你的向量与你的输入长度不同。

你应该使用
pbinom(…,lower.tail=FALSE)
而不是
1-pbinom
谢谢你的建议,我将在我的代码中使用它来获得p(X>X)