일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 사례관리
- 장고웹프로젝트
- speechAPI
- PostgreSQL
- 다른테이블에속해있습니다
- 장고웹
- speechtoText
- cmd명령어
- 자바스크립트수학
- sqlite
- 안드로이드
- Python
- 자바스크립트for문
- webkitrecognition
- 자바스크립트forinforof차이
- 자바스크립트날짜
- R데이터분석
- 자바스크립트날짜get
- 오류종류
- 자바스크립트날짜형식
- 이행은이미다른
- javaScriptError
- 개발
- forof문
- Android
- 이행은이미다른테이블에속해있습니다
- 청소년복지론
- 장고프로젝트
- 장고
- 파이썬
- Today
- Total
EMDI는 지금도 개발중
R데이터분석 : 데이터 정제, 빠진 데이터 제거하기 (결측치 정제) 본문
1. 데이터 결측치 찾기
* 샘플데이터 만들기
df <- data.frame(sex = c("M", "F", NA, "M", "F"),
score = c(5,4,3,4,NA));
is.na(df); //결측치 확인
table(is.na(df)); //결측치 빈도 출력
table(is.na(df$sex)) //성별 컬럼만 빈도 출력
mean(df$score) //점수의 평균을 구하려고하면 NA라는 데이터가 있기떄문에 결과값은 NA가 나온다.
2. 결측치 제거하기 filter() 이용
* is.na()를 filter()에 적용하면 결측치가 있는 행을 제거할 수 있다. 먼저 결측치가 있는 행만 추출한 다음 제거하기!
df %>% filter(is.na(score))
df <- df %>% filter(!is.na(score)) // is.na()앞에 '아니다'를 의미하는 ! 기호를 붙여 !is.na()를 입력하면 NA가 아닌 값을 출력할 수 있다.
df %>% filter(is.na(sex))
df <- df %>% filter(!is.na(sex))
3. 결측치가 하나라도 있으면 바로 제거할 수 있는 함수 na.omit()
* na.omit()은 결측치가 하나라도 있으면 모두 제거하기 때문에 간편한 측면이 있지만, 분석에 필요한 행까지 제거할 수 있다는 단점이 있다.
df_nomiss <- na.omit(df);
4. 결측치 제외기능 이용하기
mean(df$score, na.rm = T) //결측치 제외하고 평균 산출
sum(df$score, na.rm = T) //결측치 제외하고 합계 산출
Q. csv파일을 이용하여 na.rm을 사용하기
exam <- read.csv("text_csv.csv"); //데이터 불러오기
exam[c(3, 8, 11), "math"] <- NA // 3, 8, 11행의 math에 NA할당하기
* 코드에서 [] 대괄호는 데이터의 위치를 지칭하는 역할을 합니다. 대괄호 안에서 쉼표 왼쪽은 '행위치', 오른쪽은 '열위치'를 의미합니다.
exam %>% summarise(mean_math = mean(math)) //평균산출해서 mean_math 변수에 넣기
위의 결과값은 결측치가 있기 때문에 NA로 나옴
//평균산출해서 mean_math 변수에 넣는데 na.rm을 이용해서 결측치 제외
exam %>% summarise(mean_math = mean(math, na.rm = T))
exam %>% summarise(mean_math = mean(math, na.rm = T),
sum_math = sum(math, na.rm = T),
median_math = median(math, na.rm = T))
5. 평균값으로 결측치 대체하기
exam$math <- ifelse(is.na(exam$math), mean(exam$math, na.rm = T), exam$math)
'IT > R 데이터분석' 카테고리의 다른 글
R데이터분석 : 그래프 만들기 (0) | 2019.10.01 |
---|---|
R데이터분석 : 데이터 정제, 이상한 데이터 제거하기 (이상치 정제) (0) | 2019.09.30 |
R데이터분석 : 데이터 가공하기 filter, select, arrange, mutate 등 (0) | 2019.09.17 |
R데이터분석 : 데이터 파악하기 (0) | 2019.09.16 |
R데이터분석 : 데이터 프레임 만들기 (0) | 2019.08.29 |