使用嵌套在r中的while循环中的for循环

时间:2014-03-07 00:34:13

标签: r for-loop while-loop

实验:'X是五次试验的二项式,p = 0.5,其中X是头数。 Ysample是X试验的二项式,p = 0.5,其中Ysample是头数。 T是实验重复的次数,直到Ysample> = 3的值。 这是代码:

while (Ysample[i]<3){
length(X)=n
    length(Y)=n
    X=c(1:n)
    Y=c(1:n)
    i=1
    X[i]=sum(rbinom(5,1,0.5))
    Ysample[i]=sum(rbinom(X[i],1,0.5))
    i=i+1
    }
    T=n

我不确定为什么它不起作用,为什么无论我运行多少次我总是得到T = 10000?

2 个答案:

答案 0 :(得分:1)

检查您要设置的内容。 T在循环结束时简单地设置为n。它不是计算机或其他任何东西。

此外,您可能需要考虑使用更高阶函数;虽然R可以处理循环,但没有它们会更好,而且使用更高阶函数和操作的默认“矢量化”行为更为惯用R.

答案 1 :(得分:1)

这是你想要的吗?

T <- 0
Ysample <- 0

while( Ysample < 3 )
{
    X <- sum( rbinom( 5, 1, 0.5 ) )
    Ysample <- sum( rbinom( X, 1, 0.5 ) )
    T <- T + 1
}

cat( "T =  ", T, "\n\n" )