답변:
@새긴 금:
설명이 포함 된 이름으로 함수를 작성하여 프로그램에서 오류를 발생시키는 조건을 테스트하는 경우 오류 메시지를 제어 할 수 있습니다. 예를 들면 다음과 같습니다.
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
그러면 1부터 8까지의 숫자가 인쇄되고 다음과 같은 메시지가 인쇄됩니다.
Error: Less_Than_8(i) is not TRUE
괄호 안의 "i"를 테스트에 실패한 값으로 바꾸면 좋을 것입니다.
그보다 더 멋진 것이 필요하면 Runit을 살펴보고 Harlan이 제안한대로 테스트하십시오.
stopifnot()
도 넣을 수 있습니다 .
이것은 stop
명령 으로 수행 할 수 있습니다 . 이 명령은 함수 실행을 중지하고 오류 메시지를 인쇄합니다. 예를 들어 변수 something
가 FALSE
다음 과 같은지 테스트 할 수 있습니다 .
if(something == FALSE){
stop("error message to print")
}
마찬가지로 warning
명령은 경고를 인쇄하지만 코드는 계속 실행합니다.
if(something == FALSE){
warning("error message to print")
}
이들은 모두 기본 R에서 제공하며 자체 함수를 작성하는 데 패키지를 실행하거나 포함 할 필요가 없습니다. 이 방법은 의존성이 적은 코드를 작성하는 데 선호되며이 구문은 패키지 개발에 널리 사용됩니다. 그러나 유사한 기능은 assert_that
Hadley의 "tidyverse"의 일부로 최근에 출시 된 기능이 포함 된 "assertthat"패키지에서 지원됩니다 .