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)만 사용된다는 경고가 발생했다. 사실 논리형 벡터에는 TRUE와 FALSE 값이 섞여 있을 수 있기 때문에 논리적 벡터에서 조건식을 적용한다는 의미는 명확하지 않다.