더북(TheBook)

경고 메시지가 사라졌다. 하지만 이렇게 경고 메시지를 가리는 것은 별로 좋지 않다. 잠재적인 오류가 발생하는 것을 모르고 지나칠 수 있기 때문이다. 결국 마지막 결과까지 보고 나서야 오류가 있다는 것을 알게 된다. 어쩌면 끝까지 모를 수도 있다. 코드에 더 엄격해야 하고 디버깅하는 시간도 줄여야 한다.

warn1 또는 2로 설정하면 코드에 버그가 될 만한 부분이 있을 때 더 빨리 실패하게 한다. warn = 0일 때 함수를 실행하면 기본적으로 일단 값을 반환한 후 모든 경고 메시지를 함께 표시한다. 예로 다음 문자열 2개를 받는 함수를 호출해서 살펴보자.

> f <- function(x, y) {
+     as.numeric(x)+ as.numeric(y)
+ }

경고 레벨이 기본값일 때 함수의 결괏값을 출력하고 모든 경고 메시지가 뒤이어 나오는 것을 볼 수 있다.

> options(warn = 0)
> f("hello", "world")
[1] NA
Warning messages:
1: In f("hello", "world") : NAs introduced by coercion
2: In f("hello", "world") : NAs introduced by coercion
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.