더북(TheBook)

4.2.3 벡터에 if 문 사용하기

앞에서 작성한 모든 예제 함수는 단일 입력에서만 동작한다. 이들 함수에 벡터를 입력하면 다중 요소 벡터에서 제대로 동작하지 않으므로 경고가 발생한다.

> check_positive(c(1, -1, 0))
[1] 1
Warning message:
In if (x > 0) 1 :
  the condition has length > 1 and only the first element will be used

앞 출력의 결과에서 다중 요소 논리형 벡터를 입력하면 if 문은 첫 번째 요소를 제외한 다른 모든 요소는 무시한다는 것을 알 수 있다.

> num <- c(1, 2, 3)
> if (num > 2) {
+     cat("num > 2!")
+ }
Warning message:
In if (num > 2) { :
  the condition has length > 1 and only the first element will be used

앞 코드에서는 첫 번째 요소 1에 대한 표현식(1 > 2)만 사용된다는 경고가 발생했다. 사실 논리형 벡터에는 TRUEFALSE 값이 섞여 있을 수 있기 때문에 논리적 벡터에서 조건식을 적용한다는 의미는 명확하지 않다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.