더북(TheBook)

반복문

R의 반복문에는 for, while, repeat 문이 있다. 다음은 이 세 가지 문법을 설명한 표다.

표 3-3 반복문의 문법

문법

의미

for (i in data) {
  i를 사용한 문장
}

data에 들어 있는 각각의 값을 변수 i에 할당하면서 각각에 대해 블록 안의 문장을 수행한다.

while (cond) {
  조건이 참일 때 수행할 문장
}

조건 cond가 참일 때 블록 안의 문장을 수행한다.

repeat {
  반복해서 수행할 문장
}

블록 안의 문장을 반복해서 수행한다. repeat은 다른 언어의 do-while에 해당한다.

반복문 내 블록에서는 break, next 문을 사용해 반복의 수행을 조정할 수 있다.

break : 반복문을 종료한다.

next : 현재 수행 중인 반복문 블록의 수행을 중단하고 다음 반복을 시작한다.

다음 코드에서 for 문은 변수 i가 주어진 벡터에 있는 1, 2, 3, …, 10을 차례로 출력한다.

> for (i in 1:10) {
+    print(i)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

다음 while 문은 1부터 10까지 숫자를 출력하기 위해 변수 i의 값을 10과 비교하면서 print( )하는 예다.

> i <- 1
> while (i <= 10) {
+    print(i)
+    i <- i + 1
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

while 문에서 next를 사용해 짝수만 출력해보자. 값이 짝수인지 확인하는 데는 나머지 연산자 %%를 사용했다.

> i <- 0
> while (i <= 9) {
+    i <- i + 1
+    if (i %% 2 != 0) {
+       next  # print()를 실행하지 않고 while 문의 처음으로 감
+    }
+    print(i)
+ }
[1] 2
[1] 4
[1] 6
[1] 8
[1] 10

다음은 repeat을 사용해서 1부터 10까지 값을 출력한 예다. repeat 문에서 조건을 지정하려면 블록 내부에서 if 문으로 조건을 확인하고 break로 빠져나오도록 해야 한다.

> i <- 1
> repeat {
+    print(i)
+    if (i >= 10) {
+       break
+    }
+    i <- i + 1
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.