young
is this it
young
전체 방문자
오늘
어제
  • 분류 전체보기 (143)
    • 웹_프론트엔드 (1)
      • 로드맵 챌린지 (73)
      • Svelte (2)
      • React (6)
      • JavaScript (8)
      • TypeScript (2)
      • HTML+CSS (5)
    • 웹_백엔드 (0)
      • Django (0)
    • 빅데이터 (33)
      • R (30)
      • Python (2)
    • 기타 (11)
      • git (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • css네이밍
  • bem
  • ggplot
  • 공개키
  • rstudio지도정보
  • 웹보안
  • 인증
  • ssl
  • 보안취약점
  • form
  • 태스크러너
  • 대칭키
  • Regex
  • css후처리기
  • ggmap()
  • 버전관리
  • owasp
  • vcs
  • 암호화
  • 구글맵api

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
young

is this it

빅데이터/R

[R] 데이터 전처리 - 결측치 처리 (제거 및 대체)

2019. 12. 8. 17:50
반응형

결측치 처리

분석자가 데이터를 코딩하는 과정에서 실수로 입력하지 않았거나, 응답자가 고의로 응답을 회피한 경우 결측치(Missing Values, R에서는 NA로 표시)가 발생한다. 이 경우 결측치 항목의 최대 자리수만큼 숫자 9를 채워 부호화하거나 하이픈(-)으로 해당 항목을 채워 넣는다. 결측치를 처리하는 방법에는 결측치를 제거하는 방법도 있지만, 결측치를 0이나 평균값으로 대체하는 방법도 고려해 볼 수 있다.

 

1. 결측치 확인

summary() 함수를 이용하여 특정 변수의 결측치를 확인할 수 있으며, 결측치가 포함된 데이터를 대상으로 합계를 구하는 sum() 함수를 실행하면 'NA'가 출력된다.

 

 - 결측치 자료 조합 확인용 시각화 도구

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
install.packages("VIM")
require(VIM)
 
# 결측치 자료 조합 확인용 시각화 도구
aggr(x, prop = FALSE, numbers = TRUE)
 
# 두 개의 변수간의 결측치 관계 확인 시각화 도구
marginplot ( x[c("Sepal.Width", "Petal.Length")],
            pch = 20,
            col = c("darkgray","red","blue"))
head(x[, c("Sepal.Width","Petal.Length")])
 
# Matrix/DataFrame의 행(data)별 결측치 확인
rowSums(is.na(x))
sum(rowSum(is.na(x))>0)
sum(is.na(x))
Colored by Color Scripter

 

2. 결측치 제거

결측치를 제거하여 데이터를 연산하는 방법에는 자체 함수에서 제공되는 속성을 이용하는 방법과 결측치 제거 함수를 이용하는 방법이 있다.

함수 사용 예시 설명
sum(dataset$변수, na.rm=T) 결측치 제거
var2 <- na.omit(dataset$변수) 해당 변수(칼럼)의 결측치 제거
1
2
3
# 결측치를 제외한 새로운 데이터셋 생성
x[ !complete.cases(x), ] #NA가 포함 된 행을 출력
y <- x[ complete.cases(x), ] #NA가 없는 행을 변수 y에 저장

 

3. 결측치 대체

결측치를 제거하면 결측치를 포함하는 관측치가 제거된다. 관측치를 유지하기 위해서는 결측치가 0이나 평균으로 대체하는 방법을 선택한다.

함수 사용 예시 설명
dataset$변수 = ifelse( !is.na(x), x, 0 ) 결측치를 0으로 대체
dataset$변수 = ifelse( !is.na(x), x, round(mean(x, na.rm=T), 2) ) 결측치를 평균값으로 대체

 

반응형

'빅데이터 > R' 카테고리의 다른 글

[R] 데이터 조작 - dplyr 패키지 활용하기  (0) 2019.12.08
[R] 데이터 전처리 - 코딩 변경  (0) 2019.12.08
[R] 데이터 전처리 - 데이터 셋 보기  (0) 2019.12.04
[R] 데이터 분석 절차와 데이터 종류 | 다중 변수(다변량) 자료 탐색  (0) 2019.12.03
[R] 데이터 시각화 - 이산변수 막대 차트 & 원형 차트  (0) 2019.12.02
    '빅데이터/R' 카테고리의 다른 글
    • [R] 데이터 조작 - dplyr 패키지 활용하기
    • [R] 데이터 전처리 - 코딩 변경
    • [R] 데이터 전처리 - 데이터 셋 보기
    • [R] 데이터 분석 절차와 데이터 종류 | 다중 변수(다변량) 자료 탐색
    young
    young

    티스토리툴바