정보

    • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 예외처리

    • 작성자     : 박진만

    • 작성일     : 2020-03-24

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

    • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

    • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

    • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

    • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

    • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

     

     

    [특징]

    • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [예외 처리]

    • 프로그램 실행 중에 오류가 발생하면 프로그램이 중단되고 중단된다.

    • 이에 대해 오류가 발생해도 처리를 계속하도록 프로그램을 제어 할 수 있다.

    • 이 때 R에서 예외 처리를 수행하는 try함수 또는 tryCatch함수를 이용할 수 있다.

     

    [try 함수]

    • 예를들어 함수 f가 있을 때 해당 함수가 실행 도중에 오류가 발생해도 처리를 계속하려는 경우 예외 처리를 수행할 수 이있다.

    • 즉 try함수에 f 함수를 제공함으로써 f함수가 실행되어 그 결과가 반환되도록 하는 것이다.

    • 이 경우 f함수의 처리가 정상적으로 완료되면 그 결과가 반환된다. 

    • 한편, 비정상적으로 해당 함수가 종료 된 경우에는 try-error 클래스의 객체가 반환된다.

    • try함수의 silent인수 TRUE를 제공하면 오류가 발생하면 오류 메시지가 출력되고, FALSE을주는 오류 메시지의 출력은 억제된다.

    f <- function(x) {
      if (x >= 0) {
        return (x * x)
      } else {
        stop("ERROR\n")     # x <0이면 오류 출력
      }
    }
    
    
    g <- function(x) {
      y <- NULL
      y <- try(f(x), silent = FALSE)   # try에서 f 함수를 실행
      if (class(y) == "try-error") {
        y <- NA                        # f 함수가 실패한 경우 y에 -1을 대입한다.
      }
      y
    }
    
    
    g(-10)
    ## Error in f(x) : ERROR
    ## [1] NA
    
    g(10)
    ## [1] 100

     

    [tryCatch 함수]

    • tryCatch 함수를 사용하는 경우, 오류뿐만 아니라 경고도 감지 할 수 있고, 그에 대한 예외 처리를 할 수 있다.

    f <- function(x) {
      if (x <= 0) {
         stop("error!\n")         # x가 0 이하이면 오류로 처리
      } else if (x %% 2 == 0) {
         warning("warning!\n")    # x가 짝수이면 경고로 처리
      }
    }
    
    g <- function(x) {
      y <- 0
    
      tryCatch({
         # 에러 나 경고가 발생하면 예외 처리를 하는 코드
          f(x)
          y <- 1
        }, 
        error = function(e) {   # 해당 e에는 오류 메시지가 저장됨
          message("ERROR!")
          message(e)           
          y <- 2
        },
        warning = function(e) {  # 해당 e에는 경고문이 저장됨
          message("WARNING!")
          message(e) 
          y <- 3
        },
        finally = {             # 여기에 쓰여진 코드는 반드시 실행함
          message("finish.")
          y <- 4
        },
        silent = TRUE
      )
      return (y)
    }
    
    g(-10)
    ## finish.
    ## ERROR!
    ## error!
    ## [1] 4
    
    
    g(1)
    ## finish.
    ## [1] 4
    
    g(2)
    ## finish.
    ## WARNING!
    ## warning!
    ## [1] 4

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 수학 함수 그래프

    정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 수학 함수 그래프 ㄹ작성자 : 박진만 작성일 : 2020-04-01 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어..

    shlee1990.tistory.com

     

    [이전글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : eval 함수

    정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : eval 함수 작성자 : 박진만 작성일 : 2020-03-31 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계..

    shlee1990.tistory.com

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기