정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-03-26

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [결측치 판정]

    • 데이터 중 결측치는 NA로 표시된다

    • 이 밖에 수치가 아닌 데이터인 NaN 또는 무한에 해당하는 Inf 등이 있다. 

    • 데이터에 이러한 값이 포함되면 계산이 제대로 되지 않는 경우가 있다. 

    • 따라서 이들을 확인할 때 다음과 같은 함수를 사용한다.

    함수 판단하는 조건
    is.null NULL인지 확인
    is.na 결측치 NA 여부 확인
    is.nan 숫자가 아닌 NaN 인지 확인
    is.finite 유한 여부 확인 
    is.infinite 무한 Inf 여부 확인

     

    x <- c(1, log(0), 0/0, NA)
    x
    ## [1]    1 -Inf  NaN   NA
    
    is.na(x)
    ## [1] FALSE FALSE  TRUE  TRUE 
    
    is.nan(x)
    ## [1] FALSE FALSE  TRUE FALSE
    
    is.finite(x)
    ## [1]  TRUE FALSE FALSE FALSE
    
    is.infinite(x)
    ## [1] FALSE  TRUE FALSE FALSE

     

    [결측치 제거 (na.rm) ]

    • 데이터에 결측값이 포함 된 경우, 계산이나 그래프를 그릴 때 오류가 발생할 수 있다.

    • 따라서 일부 함수는 결측값을 무시하는 옵션 na.rm이 준비되어있다.

    x <- c(1, 2, 3, 4, NA, NaN)
    
    sum(x)
    ## [1] NA
    
    sum(x, na.rm = TRUE)
    ## [1] 10

     

    • na.rm지정할 수 없는 함수는 다음과 같이 제거한다.

    x <- c(1, 2, 3, 4, NA, NaN)
    sum(x)
    ## [1] NA
    
    y <- x[!is.na(x)]
    y
    ## [1] 1 2 3 4
    
    sum(y)
    ## [1] 10

     

    [결측치 제거 (수치값이 아닌 경우) ]

    • 결손치와 숫자가 아닌 제거 방법으로 ifelse문장, replace문장, which문장과 벡터 연산 등의 방법이있다.

    • 속도를 중시한다면, 가능한 벡터 연산을 이용한다.

    • 다음은

       NA및 버튼 NaN을 0으로 대체하는 예시이다.

    x <- c(1, 2, 3, 4, NA, NaN)
    
    ifelse(is.na(x), 0, x)
    ## [1] 1 2 3 4 0 0
    
    replace(x, which(is.na(x)), 0)
    ## [1] 1 2 3 4 0 0
    
    x[is.na(x)] <- 0
    x
    ## [1] 1 2 3 4 0 0
    
    x[which(is.na(x))] <- 0
    x
    ## [1] 1 2 3 4 0 0

     

    • 아래는 마이너스 무한대를 0으로 대체하는 예시이다.

    x <- c(-Inf, 1, 2, 3, 4, Inf)
    
    ifelse((is.infinite(x) & (x < 0)) , 0, x)
    ## [1]   0   1   2   3   4 Inf
    
    replace(x, which(is.infinite(x) & (x < 0)), 0)
    ## [1]   0   1   2   3   4 Inf
    
    x[is.infinite(x) & (x < 0)] <- 0
    x
    ## [1]   0   1   2   3   4 Inf

     

    [데이터 프레임 에서의 결측치 제거 ]

    • 데이터 프레임에 관해서는 위의 방법과는 별도로 na.omit 함수를 이용하는 방법도 있다.

    df <- data.frame(a = c(1, 1, 1, 1), b = c(1, NA, 1, 1), c = c(1, 2, 3, Inf))
    head(df)
    ##   a  b   c
    ## 1 1  1   1
    ## 2 1 NA   2
    ## 3 1  1   3
    ## 4 1  1 Inf
    
    
    na.omit(df)
    ##   a b   c
    ## 1 1 1   1
    ## 3 1 1   3
    ## 4 1 1 Inf

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 연산자

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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