R while循环和次数

时间:2013-04-17 14:17:28

标签: r for-loop while-loop

进行了一段时间的循环,并且工作正常。 但是我还需要添加另一个条件。

我需要循环继续前进,直到它满足while循环,但是我还需要补充一点,这只能重复x次。

我认为你必须让for循环做x次,是否可以在这里放一个while循环?

基本上我怎样才能使循环达到目标或在x循环后停止?

2 个答案:

答案 0 :(得分:4)

while中的表达式需要为TRUE才能继续循环。您可以使用|&添加额外条件。此循环运行99次或直到随机变量之和小于100。

counter <- 0
result <- 0

while(counter < 100 | sum(result) < 100) {
  result <- sum(result, rnorm(1, mean = 5, sd = 1))
  counter <- sum(counter, 1)
}

> result
[1] 101.5264
> counter
[1] 21

答案 1 :(得分:0)

只需将当前迭代器值作为参数传递给函数。这样,如果达到特定值,您可以中断递归。

但是如果使用递归,为什么还有一个while循环,例如:

add_one_recursive = function(number) {
   number = number + 1
   cat("New number = ", number, "\n")
   if(number > 10) {
      return(number)
   } else {
      return(add_one_recursive(number))
   }
 }
final_number = add_one_recursive(0) 
New number =  1 
New number =  2 
New number =  3 
New number =  4 
New number =  5 
New number =  6 
New number =  7 
New number =  8 
New number =  9 
New number =  10 
New number =  11 

根本不需要显式循环。