R中的“for循环”内部的“while循环”不起作用?

时间:2015-10-19 23:30:30

标签: r for-loop while-loop

因此,作为一项实验,我想模拟一个有100个球的瓮,R应该继续提取其中一个,直到我得到一个特定的球数(在球n100以下的情况下),如:

urn <- c(1:100)
num <- 0
while(num != 100){
            num <-sample(urn, 1, FALSE)
            }

但我想看到的是,在重复这个实验100,000次后,平均平均需要多少次试验来提取n100。我是R的新手,所以我尝试为基本实验制作 for 循环,重复它100.000次。 这是代码:

rep <- 100000
urn <- c(1:100)
num <- 0
trials <- 0
tottrials <-0
for (i in 1:rep){
    while(num != 100){
        num <-sample(urn, 1, FALSE)
        trials <- trials +1
        }
    tottrials <- tottrials + trials
    }
cat(prettyNum(prove, big.mark="'"),tottrials/rep,"\n")

但是使用这种方法它只进行1次循环,然后重复找到的试验次数100.000次(而不是重新找到新的试验次数。证明:如果我让它粘贴它所做的试验次数,他将随机粘贴一次100.000次)。为什么? :(

1 个答案:

答案 0 :(得分:3)

尝试将trialsnum变量放入循环中。他们将重置为下一次重复:

rep <- 100000
urn <- c(1:100)
tottrials <-0
for (i in 1:rep){
    num <- 0
    trials <- 0
    while(num != 100){
        num <-sample(urn, 1, FALSE)
        trials <- trials +1
        }
    tottrials <- tottrials + trials
    }

tottrials/rep
[1] 99.51042