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
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기