반복문

    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
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.