在R中的变量中存储循环值

时间:2015-03-04 21:01:27

标签: r for-loop

我正在使用for循环使用" pbinom"获取一组p值。功能。值1:5简称为观察计数,21表示样本量,0.05表示成功概率:

for ( i in 1:5) {
print (1 - pbinom(i, 21, 0.05))
}

[1] 0.2830282
[1] 0.08491751
[1] 0.01888063
[1] 0.00324032
[1] 0.0004415266

此代码工作正常,但它只是在命令提示符上输出值,如上所述。

我的问题是,如何将输出存储在变量中?

我试过

output<-for ( i in 1:5) {
print (1 - pbinom(i, 21, 0.05))
}

但是当我输入&#34;输出&#34;时,我收到了#34; NULL&#34;作为回应。

任何帮助将不胜感激, 感谢。

2 个答案:

答案 0 :(得分:4)

根本不使用for循环。 pbinom是矢量化的。只是做

(output <- 1 - pbinom(1:5, 21, 0.05))
## [1] 0.2830281552 0.0849175139 0.0188806334 0.0032403196 0.0004415266

在最糟糕的情况下,您可以使用sapply代替默认输出向量,例如

(output <- 1 - sapply(1:5, pbinom, 21, 0.05))
## [1] 0.2830281552 0.0849175139 0.0188806334 0.0032403196 0.0004415266

答案 1 :(得分:1)

你不能将for循环传递给这样的变量。你可以试试这个:

output=c()
for (i in 1:5){
output[i]=(1-pbinom(i,21,0.05))
}

然后输入:

output

R将产生:

[1] 0.2830281552 0.0849175139 0.0188806334 0.0032403196 0.0004415266