R에서 첫 번째 trycatch() 함수를 작성하는 방법


R에서 tryCatch() 함수를 사용하여 경고나 오류가 발생한 경우 표현식 값을 반환하거나 사용자 정의 메시지를 생성할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

 my_function <- function (x, y){
    tryCatch (
        #try to do this
        {
        #some expression
        },
        #if an error occurs, tell me the error
        error= function (e) {
            message(' An Error Occurred ')
            print(e)
        },
        #if a warning occurs, tell me the warning
        warning= function (w) {
            message(' A Warning Occurred ')
            print(w)
            return (NA)
        }
    )
}

다음 예제에서는 tryCatch() 함수를 실제로 사용하는 방법을 보여줍니다.

예: R에서 tryCatch() 함수 만들기

한 값의 로그를 취한 다음 이를 두 번째 값으로 나누려고 시도하는 다음 tryCatch() 함수를 생성한다고 가정해 보겠습니다.

오류가 발생하면 “오류가 발생했습니다”라는 메시지를 출력한 다음 오류를 R에 인쇄합니다.

경고가 발생하면 “경고가 발생했습니다”라는 메시지를 출력하고 R에 경고를 인쇄한 다음 NA 값을 반환합니다.

오류나 경고가 발생하지 않으면 단순히 함수 결과를 반환합니다.

 log_and_divide <- function (x, y){
    tryCatch (
        {
        result = log(x) / y
        return (result)
        },
        error= function (e) {
            message(' An Error Occurred ')
            print(e)
        },
        warning= function (w) {
            message(' A Warning Occurred ')
            print(w)
            return (NA)
        }
    )
}

다양한 시나리오에서 이 함수를 실행해 보겠습니다.

시나리오 1: 오류나 경고가 발생하지 않습니다.

다음 코드는 오류나 경고가 발생하지 않는 시나리오에서 함수를 사용하는 방법을 보여줍니다.

 #run function
log_and_divide(10, 2)

[1] 1.151293

오류나 경고가 발생하지 않으므로 함수는 단순히 표현식 결과를 반환하며 결과는 1.151293 입니다.

시나리오 2: 오류가 발생합니다.

다음 코드는 오류가 발생한 시나리오에서 함수를 사용하는 방법을 보여줍니다.

 #run function
log_and_divide(10)

An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
  argument "y" is missing, with no default>

함수에 하나의 인수만 제공했기 때문에 ” 오류가 발생했습니다 “라는 메시지가 표시되고 R에서 생성된 정확한 오류도 볼 수 있습니다.

시나리오 3: 경고가 발생합니다.

다음 코드는 경고가 발생하는 시나리오에서 함수를 사용하는 방법을 보여줍니다.

 #run function
log_and_divide(-10, 2)

A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA

첫 번째 인수에 음수 값을 제공했기 때문에 R은 음수 값의 로그를 계산할 수 없으므로 ” 경고가 발생했습니다 “라는 메시지를 받습니다. R이 생성한 정확한 경고를 확인하고 함수는 NA를 다음과 같이 반환합니다. 음수 값이 있습니다. 결과.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 중첩된 For 루프를 만드는 방법
R에서 루프를 사용하여 벡터에 값을 추가하는 방법
R에서 함수의 값을 반환하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다