Загружаем каталог…
Загружаем каталог…
07장 데이터 정제 01) 결측치 찾기 결측치 : 누락된 값, 비어 있는 값 결측치는 따옴표 없이 NA 로 표기한다 is . na ( ) 를 이용하면 데이터에 결측치가 있는지 확인할 수 있다 (is it NA?) (예) is.na(df) # df에 결측치가 있는가? 결측치 = TRUE / 결측치 아닌 값 = FALSE 로 결과가 나온다 is . na ( ) 를 table ( )에 적용하면 데이터에 결측치가 총 몇 개 있는지 알 수 있다 (예) table(is.na(df)) # df 속에 있는 결측치 개수 출력 어떤 변수에 결측치가 있는지 알려면 (예) table(is.na(df$sex)) # sex 결측치 빈도 출력 (FALSE와 TRUE로 각각의 개수가 나옴) 결측치가 포함된 데이터에 함수를 적용하면 연산이 되지 않고 NA가 출력된다 (mean 또는 sum 적용하면 NA 출력) 02) 결측치 제거하기 결측치 있는 행 제거하기 아니다(not)을 의미하는 !를 붙인 ! is.na( ) 는 결측치가 아닌 값 을 의미한다. 이를 filter( )에 적용하면 결측치를 제외하고 행을 추출한다. 예) df %>% filter(!is.na(score))** #score에서 결측치 제외하고 출력 이렇게 결측치 제거하면 다시 연산이 되고.. 여러 변수 동시에 결측치 없는 데이터만 추출하기 위의 (예)는 score 변수의 결측치만 제거한 채로 결과가 나왔다. 이제 score과 sex 두 변수가 동시에 결측치 없는 데이터만 추출하도록 해보자. (예) df %>% filter(!is.na(score) & !is.na(sex)) #score, sex 모두 결측치 제거 일일이 변수를 지정하지 않고 결측치가 있는 모든 행을 한번에 제거하기 na.omit( ) 을 이용한다. 위의 예는 사실 간편하게 na.omit(df) 라고 하면 모두 해결된다. 03) 결측치를 알아서 제거하고 연산하는 기능 이용하기 - na.rm 함수는 원래 데이터에 결측치가 있으면 계산을 하지 못하지만, na.rm을 TRUE로 설정 하면 결측치를 제외하고 함수를 적용할 수 있다. ( 단, 모든 함수가 이를 지원하는 것은 아니다) (예1) mean(df$score, na.rm = T ) #결측치를 제외하고 평균 산출 이는 mean, sum, median 등의 수치 연산 함수들에도 적용 가능하다. 04) 결측치 대체하기 데이터가 작고 결측치가 많을 경우, 결측치를 제거하면 너무 많은 데이터가 손실돼 분석결과가 왜곡되는 문제가 발생한다. 따라서 제거하는 대신, 다른 값들을 채워 넣는 방법을 사용한다. 평균값으로 결측치 대체하기 (1) 평균값 구하기 mean(exam$math, na.rm = T) # NA를 remove하고 math의 평균값을 구한다 (2) ifelse( )를 이용해서 (1)에서 구한 평균값으로 NA를 대체한다 exam $ math <- ifelse(is.na(exam $ math), 55, exam$math) 04) 이상치 정제하기 이상치 : 정상 범주에서 크게 벗어난 값 이상치를 결측치로 변환하기 : ifelse( )를 이용해 이상치일 경우 NA를 부여한다 (예) sex에는 1, 2만 존재함 만약 sex가 3인 이상치가 있으면 NA를 부여함 outlier$sex <- ifelse(outlier $ sex == 3, NA, outlier $ sex) 이제 분석할 때 결측치를 제외하면 된다 filter를 이용해 결측치를 제외한다 (예) outlier %>% filter(!is.na(sex) & is.na(score)) +) 이상치 제거하기 - 극단치 극단치 : 논리적으로 존재할 수는 있으나 극단적으로 크거나 작은값 ** (1) 상자 그림으로 극단치 기준 정하기** -사분위수 Q1 : 하위 25% 가운데 노란선 : 하위 50%(=중앙값) Q3 : 하위75% 선 바깥의 점 표시 : 극단치 (2) 상자그림 만들 때 필요한 다섯가지 통계치 출력 (status) boxplot(mpg$hwy)$status 08장 그래프 만들기 01) 산점도(scatter plot) : 데이터를 x축과 y축에 점으로 표현한 그래프 [ 산점도 그래프 만들기 ] 1. 배경 설정하기 (그래프가 그려질 배경) (예) # x축은 displ, y축은 hwy로 지정해 배경 생성 -> ggplot(data = mpg, aes(x = displ, y = hwy)) data 에는 그려질 데이터 를, aes 에는 x축 y축 의 변수를 넣는다 2. 그래프 추가하기 (geom_point) 1번에서의 배경에 +기호를 더해 그래프 유형을 지정한다 -> ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point( ) (이때, geom_point는 산점도를 그리는 함수다) 3. 축 범위를 조정하는 설정 추가하기 축 범위는 xlim( )과 ylim( )을 이용해 지정한다 (예) xlim(3, 6) : x축 범위를 3~6으로 지정 02) 막대 그래프 (Bar Chart) [ 평균 막대그래프 만들기 ] 집단별 평균표 만들기 그래프 생성하기 (geom_col) -> ggplot(data = df_mpg, aes(x=drv, y= mean_hwy)) + geom_col( ) 3. 크기 순으로 정렬하기 : reorder( )를 사용하면 크기 순으로 정렬할 수 있다 [ 빈도 막대그래프 만들기 ] : y축 없이 x축만 지정 / geom_col( ) 대신 geom_bar( ) 사용 -> ggplot(data = mpg, aes( x=drv )) + * geom_bar( ) * 정리하자면, 평균 막대그래프는 평균표 를 먼저 만든 후 생성되고 빈도 막대그래프는 별도로 표를 만들지 않고 원자료 를 이용해 바로 만든다 03) 선그래프 (Line Chart) [ 시계열 그래프 만들기 ] ggplot2 패키지에 있는 economics 데이터를 이용해 시계열 그래프를 만들어보자. x축에는 시간을 의미하는 date y축에는 실업자 수를 의미하는 unemploy를 지정하고 선그래프로 표현하기 위해 geom_line( )을 추가한다. -> ggplot(data = economics, aes(x= date, y= unemploy)) + geom_line( ) 04) 상자그림 (Box Plot) [ 상자그림 만들기 ] data , x축 y축 지정한 후 geom_boxplot( ) 추가 09장 데이터분석 프로젝트 - '한국인의 삶을 파악하라!'
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
Do it! 쉽게 배우는 R 데이터분석 [03]. 07장 데이터 정제 01) 결측치 찾기 결측치 : 누락된 값, 비어 있는 값 결측치는 따옴표 없이 NA 로 표기한다 is . na ( ) 를 이용하면 데이터에 결측치가 있는지 확인할 수 있다 (is it NA?) (예) is.na(df) # df에 결측치가 있는가? 결측치 = TRUE / 결측치 아닌 값 = FALSE 로 결과가 나온다 is . na ( ) 를 table ( )에 적용하면 데이터에 결측치가 총 몇 개 있는지 알 수 있다 (예) table(is.na(df)) # df 속에 있는 결측치 개수 출력 어떤 변수에 결측치가 있는지 알려면 (예) table(is.na(df$sex)) # sex 결측치 빈도 출력 (FALSE와 TRUE로 각각의 개수가…
Открыть источник