得到了一个while循环,并且工作正常。 但是我还需要添加另一个条件。R while循环和次数
我需要循环继续下去,直到它满足while循环,但是我还需要补充一点,这只能重复x次。
我认为你将不得不做一个for循环做x次,是否有可能在这里放一个while循环?
基本上我怎么能让循环达到目标或停止后x循环?
得到了一个while循环,并且工作正常。 但是我还需要添加另一个条件。R while循环和次数
我需要循环继续下去,直到它满足while循环,但是我还需要补充一点,这只能重复x次。
我认为你将不得不做一个for循环做x次,是否有可能在这里放一个while循环?
基本上我怎么能让循环达到目标或停止后x循环?
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
非常感谢,不知道'|'真的很有用。 与此有所不同,但仍帮助我解决它。 VEery new to this,so sorry if if stupid。 – Bennn
只是通过当前迭代值作为参数传递给你的函数。这样,如果达到特定值,您可以中断递归。
但是,为什么你有一个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
不需要外在的循环可言。
发布一个可重现的例子。我们可以运行的东西 – Nishanth
通过一个可重现的示例@ e4e5f4意味着样本数据+代码,可以在我们的计算机上再现您的问题。见例如http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example或RomanLustrik的答案。 –
一般来说,我会同意一个可重复的例子是要走的路,但在这种特殊情况下,描述足以通过一个简短的自我构造的例子来解释我的推理。 –