더북(TheBook)

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