정보

    • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 재귀

    • 작성자     : 박진만

    • 작성일     : 2020-03-27

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [재귀]

    • 피보나치 수열 a(n) = a(n-1) + a(n-2) 처럼 a에 an 을 구하기 위해 이전 계산 결과 (an-1) 등을 이용하는 것을 재귀라고 한다.

    • R에서는 Recall함수를 이용하여 재귀 처리를한다.

    • 아래의 코드는 피보나치 수열을 구하는 예시이다.

    getFibonacci <- function(n) {
    	if (n == 1) {
    		M <- 1
    	} else if (n == 2) {
    		M <- 2
    	} else {
    		M = Recall(n-1) + Recall(n-2)
    	}
    	return(M)
    }
    getFibonacci(10)
    ## [1] 89

     

    • 아래의 예시는 n! (n 펙토리얼)을 요구하는 경우이다.

    getFactorial <- function(n) {
    	if (n <= 1) {
    		M <- 1
    	} else {
    		M <- n * Recall(n-1)
    	}
    	return(M)
    }
    getFactorial(10)
    ## [1] 3628800
    
    
    # R의 기존 함수를 이용하여 펙토리얼을 계산하는 방법
    prod(1:10)
    ## [1] 3628800

     

     

    [재귀의 응용 예시]

    • 재귀를 사용하는 예시가 그렇게 흔하지는 않지만, R 패키지를 만들 때 subset함수를 다시 정의에 사용되는 경우가있다.

    • 예를 들어, 행렬에서 특정 행의 데이터를 꺼낼 경우, 행 번호를 지정하거나 행의 이름을 지정하는 경우이다.

    • 이 두 가지 기능을 가진 같은 함수를 작성하고 싶은 경우에 재귀를 사용할 수 있다.

    subset.class <- function(x, subset, ...) {
      if (!is.logical(subset)) {
        if (is.numeric(subset)) {
          new_subset <- rep(F, length = nrow(x))
          new_subset[subset] <- TRUE
          Recall(x, new_subset)
        }
        if (is.character(subset)) {
          new_subset <- rep(F, length = nrow(x))
          names(new_subset) <- rownames(x)
          new_subset[subset] <- TRUE
          Recall(x, new_subset)
        }
      } else {
        return(x[subset, ])
      }
    }

     

    [다음글]

    https://shlee1990.tistory.com/642

     

    R을 이용한 통계 분석 및 데이터 시각화 : 패키지

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

    shlee1990.tistory.com

     

    [이전글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 반복문

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

    shlee1990.tistory.com

     

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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