| Control {base} | R Documentation |
Control Flow
Description
These are the basic control-flow constructs of the R language. They function in much the same way as control statements in any Algol-like language.
Usage
if(cond) expr
if(cond) cons.expr else alt.expr
for(var in seq) expr
while(cond) expr
repeat expr
break
next
Arguments
cond |
A length-one logical vector that is not |
var |
A syntactical name for a variable. |
seq |
An expression evaluating to a vector (including a list). |
expr, cons.expr, alt.expr |
An expression in a formal sense. This is either a
simple expression or a so called compound expression, usually
of the form |
Details
break breaks out of a for, while or repeat
loop; control is transferred to the first statement outside the inner-most loop.
next halts the processing of the current iteration and advances the
looping index. Both break and next apply only to the innermost
of nested loops.
Note that it is a common mistake to forget to put braces ({ .. })
around your statements, e.g., after if(..) or for(....).
In particular, you should not have a newline between } and
else to avoid a syntax error in entering a if ... else
construct at the keyboard or via source.
For that reason, one (somewhat extreme) attitude of defensive programming
is to always use braces, e.g., for if clauses.
The index seq in a for loop is evaluated at the start of
the loop; changing it subsequently does not affect the loop. The
variable var has the same type as seq. If seq is
a factor (which is not strictly allowed) then its internal codes are
used: the effect is that of as.integer not
as.vector.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth \& Brooks/Cole.
See Also
Syntax for the basic R syntax and operators,
Paren for parentheses and braces; further,
ifelse, switch.
Examples
for(i in 1:5) print(1:i)
for(n in c(2,5,10,20,50)) {
x <- rnorm(n)
cat(n,":", sum(x^2),"\n")
}