if

    먼저 조건에 따라 코드의 수행 여부를 결정하는 if 문에 대해 살펴본다. 다음은 if 문의 문법 구조를 정리한 표다.

    표 3-1 if 문법

    문법

    의미

    if (cond) {
       cond가 참일 때 실행할 문장
    } else {
       cond가 거짓일 때 실행할 문장
    }

    조건 cond가 참, 거짓인 경우에 따라 {} 블록을 실행한다. 필요한 경우 else 블록을 지정할 수 있다.

    다수의 TRUE, FALSE 데이터를 한 번에 처리한다면 ifelse( ) 함수를 고려할 수 있다.

    표 3-2 ifelse( ) 함수

    ifelse : 주어진 test 값에 따라 yes 또는 no 값을 반환한다.

    ifelse(
     test, # , 거짓을 저장한 객체
     yes, # test가 참일 때 선택할 값
     no # test가 거짓일 때 선택할 값
    )

    test에 다수의 TRUE, FALSE가 저장되어 있을 때 TRUE에 대해서는 yes 값을, FALSE에 대해서는 no 값을 선택하여 반환한다.

    조건문 if의 예를 살펴보자.

    > if ( TRUE ) {
    +    print("TRUE")
    +    print("hello")
    + } else {
    +    print("FALSE")
    +    print("world")
    + }
    [1] "TRUE"
    [1] "hello"
    

    위 코드의 결과는 “TRUE”, “hello”다.

    ifelse( )를 사용하면 if 문을 다수의 데이터에 한 번에 적용하는 연산이 가능하다. 다음은 1, 2, 3, 4, 5에서 값이 짝수일 경우 “even”, 홀수일 경우 “odd”를 출력하는 예다.

    > x <- c(1, 2, 3, 4, 5)
    > ifelse(x %% 2 == 0, "even", "odd")
    [1] "odd" "even" "odd" "even" "odd"
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.