본문 바로가기

My Work/Data Literacy

R 공부 (4편) - 쉽게 배우는 R 데이터 분석

데이터 정제

결측치란 누락된 값을 의미한다. 

df <- data.frame(sex = c("M", "F", NA, "M", "F"), score = c(5, 4, 3, 4, NA))  # 데이터 프레임 생성


is.na(df)  # 결측치 확인

# 출력값
       sex score
[1,] FALSE FALSE
[2,] FALSE FALSE
[3,]  TRUE FALSE
[4,] FALSE FALSE
[5,] FALSE  TRUE


table(is.na(df))

# 출력값
FALSE  TRUE 
    8     2 
    
    
table(is.na(df$score))

# 출력값
FALSE  TRUE 
    4     1

 

is.na() 함수를 사용하면 결측치를 확인할 수 있다. 'TRUE' 라고 표시되면 결측치이고, 'FALSE' 라고 표시되면 결측치가 아니다. 또한, table() 함수를 사용해서 결측치가 총 몇개 있는지 확인할 수 있으며, 변수명을 지정하면 해당 변수의 결측치의 빈도를 확인할 수 있다. 

 

 

df_nomiss <- df %>% filter(!is.na(score) & !is.na(sex))  # sex, score 결측치 제거
df_nomiss

# 출력값
  sex score
1   M     5
2   F     4
4   M     4


df_nomiss2 <- na.omit(df)  # 하나라도 결측치가 있으면 제고
df_nomiss2

# 출력값
  sex score
1   M     5
2   F     4
4   M     4


df$score <- ifelse(is.na(df$score), 3, df$score)  # 결측치를 대체
df

# 출력값
   sex score
1    M     5
2    F     4
3 <NA>     3
4    M     4
5    F     3

 

 is.na() 함수를 사용하면 결측치 없는 데이터를 추출할 수 있다. 데이터 프레임에서 하나라도 결측치가 있어 제거하고 추출하고 싶다면 na.omit() 함수를 이용하면 된다. 결측치를 제거하고 싶을 때는 조건문을 사용해서 대체한다.