더북(TheBook)

5.2.4 논리적 강제 변환

논리형으로 입력받아야 하는 일부 함수는 수치형 벡터 같은 비논리형 벡터도 허용한다. 그러나 함수 동작은 논리형 벡터를 사용할 때와 크게 다르지 않다. 이는 비논리형 벡터가 논리형 벡터로 강제 변환되기 때문이다. 예를 들어 if 조건에 수치형 벡터를 넣으면 다음과 같이 강제 변환된다.

> if (2) 3
[1] 3
> if (0) 0 else 1
[1] 1

R에서는 0이 아닌 모든 값은 TRUE로 강제 변환되고, 0만 FALSE로 변환된다. 문자열 값은 논리 값으로 변환이 불가능하다.

> if ("a") 1 else 2
Error in if ("a") 1 else 2 : argument is not interpretable as logical
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.