활용데이터셋 : iris_missing.csv

#결측치 개수구하기

문제1:
각 수치형 변수에 대해서 결측치 개수의 총합을 구해라.

핵심문법 :
sum() #합계                    
is.na(벡터) #na가 있으면 true, 없으면 false
여기서 true는 1로 처리되며, false는 0으로 처리됨

핵심답 :
sum(is.na(df[,"수치형변수이름" 혹은 위치])
#na가 있는 행의 수(true=1갯수)의 합

반복처리 방법1 : for 반복문 활용
for ( i in 1:4) {
   print(paste( i , sum(is.na(df [ , i  ] ))))
}

반복처리 방법2: apply()함수 활용
apply (df[, 1:4], MARGIN=2
              , FUN =function(x){sum(is.na(x))}

#참고 apply함수 :
MARGIN=1일때 행별로 연산처리
                =2일때 열별로 연산처리
FUN = 연산함수
              기본함수 sum, mean 등 사용가능
                apply(df[,1:4],2, FUN=mean)
              사용자지정함수 fnction(x){x처리함수}


#결측치를 평균으로 대치하기
문제 :

데이터df의 a열 변수 결측치를 평균으로 대치하고, 대치된 df의 a열 값의 분산?

핵심문법:
df[조건이 true인행, "열이름") #df[행,열] 값 추출 mean(df$a, na.rm=TRUE) #na들 제외하고 계산
df[행조건,열조건]=변경값 #df내 값 변경

핵심답:
df[is.na(df$a), "a"] = mean(df$a, na.rm=TRUE)
#df의 "a"열에서 a열의 값이 na인 값들 =평균대치

+ Recent posts