1.9 흐름 제어와 반복 구문(Flow Control and loops)

R에서의 제어와 반복은 상당히 직접적이다(아래 참고). 코드 블럭이 실행될 지 여부와 반복 횟수를 결정한다. R에서의 코드 블럭은 중괄호({}) 안에 위치한다.

## 흐름 제어 : if() 구문
# if (조건식) expr1 else expr2
x <- 5; y <- 10

if (x==0) y <- 0 else y <- y/x #  
y
## [1] 2
## 반복 구문 : for () 구문
# for (variable in sequence) expr
ASum <- 0; AProd <- 1
for (i in 1:x)  
{
  ASum <- ASum + i
  AProd <- AProd * i
}
ASum         # sum(1:x)과 같음
## [1] 15
AProd        # prod(1:x)과 같음
## [1] 120
## 반복 구문 : while () 구문
# while (condintion) expr
while (x > 0) {print(x); x <- x-1;}
## [1] 5
## [1] 4
## [1] 3
## [1] 2
## [1] 1
## 반복 구문 : repeat() 구문
# repeat expr, use break to exit the loop
repeat { print(x); x <- x+1; if (x>10) break}
## [1] 0
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10