[r] R에는 파이썬에서와 같이 assert 문이 있습니까?

어떤 것이 참인지 확인하고 그렇지 않은 경우 주어진 오류 메시지를 인쇄하고 종료하는 문



답변

stopifnot()

단위 테스트를 위해 Runittestthat 과 같은 패키지에 관심이있을 수도 있습니다 .


답변

@새긴 금:

설명이 포함 된 이름으로 함수를 작성하여 프로그램에서 오류를 발생시키는 조건을 테스트하는 경우 오류 메시지를 제어 할 수 있습니다. 예를 들면 다음과 같습니다.

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이 제안한대로 테스트하십시오.


답변

이것은 stop명령 으로 수행 할 수 있습니다 . 이 명령은 함수 실행을 중지하고 오류 메시지를 인쇄합니다. 예를 들어 변수 somethingFALSE다음 과 같은지 테스트 할 수 있습니다 .

if(something == FALSE){
   stop("error message to print")
}

마찬가지로 warning명령은 경고를 인쇄하지만 코드는 계속 실행합니다.

if(something == FALSE){
   warning("error message to print")
}

이들은 모두 기본 R에서 제공하며 자체 함수를 작성하는 데 패키지를 실행하거나 포함 할 필요가 없습니다. 이 방법은 의존성이 적은 코드를 작성하는 데 선호되며이 구문은 패키지 개발에 널리 사용됩니다. 그러나 유사한 기능은 assert_thatHadley의 “tidyverse”의 일부로 최근에 출시 된 기능이 포함 된 “assertthat”패키지에서 지원됩니다 .


답변