빅데이터 6일차 - 데이터 전처리, 결측값

2020. 7. 23. 11:18·데이터과학/R
목차
  1. 데이터 전처리(Data Preprocessing)
  2. 결측 값(missing value)
728x90

데이터 전처리(Data Preprocessing)

  • 초기에 확보한 데이터를 정제하고 가공해서 분석에 적합한 데이터를 확보하는 과정
  • 초기 데이터에는 정상 범위를 넘어서는 값이나 오류 데이터가 포함되어 있는 경우도 있기 때문에 이를 처리하지 않으면 통계 결과가 왜곡될 수도 있다.
  • 예) 한국과 외국 초등학생의 발육 상태를 비교

결측 값(missing value)

  • 데이터를 수집하고 저장ㅎ하는 과정에서 저장할 값을 얻지 못하는 경우 발생
  • 예) 통계조사 응답자가 질문에 대해 답변을 하지 않음 - 고의 누락, 실수 누락
  • 결측 값의 처리 방법
    • 결측 값을 제거하거나 제외하고, 데이터를 분석
    • 결측 값을 추정하여 적당한 값으로 치환한 후, 데이터를 분석

 

결측 값의 대체 및 제거

더보기
# 결측값의 대체 및 제거
mv1 <- c(1:3,NA,5,NA,7) # 결측값이 포함된 벡터 mv1
mv1
mv2 <- c(5,7,1,NA,3,NA,8) # 결측값이 포함된 벡터 mv2
mv1[is.na(mv1)] <- 0 # NA를 0으로 치환
mv1
mv2 # mv2
mv3 <- as.vector(na.omit(mv2)) # NA를 제거하고 새로운 벡터로 생성
mv3

[그림1] 결측값의 대체 및 제거 예제 출력

결측 값이 포함된 데이터 프레임 생성

더보기
# 결측값이 포함된 데이터 프레임 생성
# NA를 포함하는 test 데이터 생성
mv <- iris
mv[1,2] <- NA; mv[1,3] <- NA
mv[2,3] <- NA; mv[3,4] <- NA
head(mv)

[그림2] 결측값이 포함된 데이터 프레임 생성 예제 출력

 

데이터 프레임의 열 별 결측 값 확인

더보기
# 데이터 프레임의 행별 결측 값 확인
rowSums(is.na(mv)) # 행별 na의 개수
sum(rowSums(is.na(mv))>0) # NA가 포함된 행의 개수
sum(is.na(mv)) # 데이터셋 전체에서 NA의 개수

[그림3] 데이터 프레임 열 별 결측 값 확인

 

결측 값 제외 새로운 데이터셋 만들기

더보기
# 결측 값을 제외하고 새로운 데이터셋 만들기
head(mv) 
mv[!complete.cases(mv)] # NA가 포함된 행들 출력
my <- mv[complete.cases(mv),] # NA가 포함된 행 제거
head(my) # NA가 제외된 새로운 데이터셋 my

[그림4] NA 포함된 행 출력
[그림5] NA가 제거된 행 출력

 

 

출처 : 모두를 위한 R 데이터 분석 입문 한빛아카데미

728x90
저작자표시 비영리 변경금지 (새창열림)
  1. 데이터 전처리(Data Preprocessing)
  2. 결측 값(missing value)
'데이터과학/R' 카테고리의 다른 글
  • 빅데이터 7일차 - 특이값
  • 빅데이터 7일차 - 결측값 처리 방법
  • 빅데이터 6일차 - 조건에 맞는 행과 열 추출
  • 빅데이터 6일차 - 벡터에 적용 가능한 함수, 논리연산자
포장빵
포장빵
IT공부 및 프로그래밍
  • 포장빵
    포장빵의 IT
    포장빵
  • 전체
    오늘
    어제
    • AI 학습 노트 (113)
      • 기초 수학 (4)
        • 선형대수 (0)
        • 확률통계 (4)
        • 미적분 (0)
        • 최적화 이론 (0)
      • AI & 딥러닝 (1)
        • 이론 (0)
        • 컴퓨터 비전 (0)
        • 자연어 처리 (0)
        • 생성AI (0)
        • 강화학습 (0)
      • 데이터과학 (70)
        • R (47)
        • ADSP (21)
      • 연구 & 자료 (15)
        • 논문 (6)
        • 수료증 (3)
      • 프로그래밍 & 개발 환경 (22)
        • Python (22)
        • 개발도구 (0)
        • 알고리즘 (0)
      • 면접 자료 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      시계열 모형
      시퀀스형
      지수분포
      주성분 분석(PCA)
      자료의 종류
      none타입
      yolov9
      k-평균 군집
      python 주요 데이터 타입
      확률 분포
      Python Regular Expression Quick Guide
      매핑형(딕셔너리)
      R 원 그래프
      통계량에 의한 자료 분석
      str lib
      상관분석
      확률
      논문
      R 원 그래프 퍼센트
      단순선형 회귀분석
      stylegan2
      CV
      베르누이분포
      다차원 척보법
      yolov10
      Coursera Python Data Structures
      R 도수분포표
      Coursera 1
      Python 크롤링 기초
      k-means clustering
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    포장빵
    빅데이터 6일차 - 데이터 전처리, 결측값

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.