더북(TheBook)

5.2.2 논리 함수

이 절에서는 논리형 벡터를 집계하고 TRUE 요소를 찾는 방법을 알아본다.

 

논리형 벡터 집계하기

앞에서 잠깐 언급한 것처럼 이진 논리 연산자와 함께 몇몇 논리 집계 함수는 정말 쓸모가 많다.

가장 많이 사용하는 논리 집계 함수로는 any()all()이 있다. any() 함수는 주어진 논리형 벡터에 적어도 하나 이상의 요소가 TRUE일 때 TRUE를 결과로 반환하고, 아니면 FALSE를 반환한다. all() 함수는 입력 벡터의 모든 요소가 TRUE일 때만 결과가 TRUE고, 그렇지 않으면 FALSE를 반환한다.

> x <- c(-2, -3, 2, 3, 1, 0, 0, 1, 2)
> any(x > 1)
[1] TRUE
> all(x <= 1)
[1] FALSE

이 두 함수의 공통점은 다중 요소 논리형 벡터가 아닌 TRUE 아니면 FALSE라는 단일 값을 그 결과로 한다는 것이다. 그러므로 이전 절의 요구 사항을 모두 만족하는 함수를 만들 때는 all() 함수와 & 연산자를 if 조건문과 함께 사용할 수 있다.

> test_all_direction <- function(x, y, z) {
+     if (all(x < y & y < z)) 1
+     else if (all(x > y & y > z)) -1
+     else 0
+ }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.