得到了一個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的答案。 –
一般來說,我會同意一個可重複的例子是要走的路,但在這種特殊情況下,描述足以通過一個簡短的自我構造的例子來解釋我的推理。 –