[R] Creating a loop with an indefinite end term
Albyn Jones
jones at reed.edu
Tue Apr 10 17:45:46 CEST 2012
Here are a couple of constructions that work.
albyn
===========================================
num <- rep(0,10)
for (i in 2:10) {
num[i] <- num[i-1] + 5
if(num[i] > 20) break
}
> num
[1] 0 5 10 15 20 25 0 0 0 0
or
num <- rep(0,10)
done <- FALSE
i <- 2
while(!done){
num[i] <- num[i-1] + 5
if(num[i] > 20) done <- TRUE
i <- i + 1
}
> num
[1] 0 5 10 15 20 25 0 0 0 0
On Tue, Apr 10, 2012 at 10:48:34AM -0400, Steve Lavrenz wrote:
> Everyone,
>
> I'm very new to R, especially when it comes to loops and functions, so
> please bear with me if this is an elementary question. I cannot seem to
> figure out how to construct a loop which runs a function until a certain
> value is computed. For example, say I have the following:
>
> num = numeric (10)
> num [1] = 0
> for (i in 2:10) {
> num [i] = num [i-1] + 5
> }
>
> This adds 5 to the preceding spot of a vector of length 10 to get the value
> in the current spot. However, say I don't just want to run this for 10
> spots; rather I want to run it until a certain value (say, 100) is computed.
> How I construct my loop to do this?
>
> Thanks!
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Albyn Jones
Reed College
jones at reed.edu
More information about the R-help
mailing list