블로그

분석 도전(쉽게 배우는 R데이터 분석 160p) 본문

Computer engineering/R

분석 도전(쉽게 배우는 R데이터 분석 160p)

JuNM0418 2019. 4. 4. 23:46
  1. 데이터 가지고 오기
  2. 데이터 모양 확인
  3. 데이터 타입 확인
  4. 데이터 기초 분석
  5. 데이터 클린징
  6. 데이터 시각화

다음과 같은 과정을 통해서 문제1, 문제2, 문제3, 문제4를 해결한다.

문제1

popadults는 해당 지역의 성인 인구, poptotal은 전체 인구를 나타냅니다. midwest데이터에 '전체 인구 대비 미성년 인구 백분율' 변수를 추가하세요.

library(dplyr)    # dplyr라이브러리 불러오기

midwest <- as.data.frame(ggplot2::midwest)    # midwest데이터를 데이터프레임형태로 불러오기

data <- midwest %>% 
  mutate(tot = (poptotal-popadults)/poptotal*100)    # 새로운 변수 추가하기

문제2

미성년 인구 백분율이 가장 높은 상위 5개 county(지역)의 미성년 인구 백분율을 출력하시오.

data %>%
    arrange(desc(tot)) %>% 
      select(tot, county) %>%
    head(5)

         tot         county
1   51.50117       ISABELLA
2   50.59126      MENOMINEE
3   49.32073         ATHENS
4   49.05918        MECOSTA
5   47.35818         MONROE

문제3

다음과 같은 분류표의 기준에 따라 미성년 비율 등급 변수를 추가하고, 각 등급에 몇 개의 지역이 있는지 알아보세요.

분류 기준
large 40% 이상
middle 30 ~ 40% 미만
small 30% 미만
library(ggplot2)
data <- data %>% mutate(level = ifelse(data$tot >= 40 , "large", 
                ifelse(data$county > 30, "middle", "small")))

table(data$level)
qplot(data$level)

 large middle  small 
    32    396      9 

문제4

popasian은 해당 지역의 아시아인 인구를 나타냅니다. '전체 인구 대비 아시아인 인구 백분율' 변수를 추가하고 하위 10개 지역의 state(주), county(지역), 아시아인 인구 백분율을 출력하세요.

data1 <- midwest %>%
  mutate(tot_asian = (popasian/poptotal)*100) %>%
  arrange(tot_asian) %>%
  select(state, county, tot_asian) %>%
  head(10)
data1

   state    county  tot_asian
1     WI MENOMINEE 0.00000000
2     IN    BENTON 0.01059210
3     IN   CARROLL 0.01594981
4     OH    VINTON 0.02703190
5     WI      IRON 0.03250447
6     IL     SCOTT 0.05315379
7     IN      CLAY 0.06071645
8     MI    OSCODA 0.06375925
9     OH     PERRY 0.06654625
10    IL     PIATT 0.07074865

소스 코드

https://github.com/kucoma/R/blob/master/6_160p.R

출처

김영우, 쉽게 배우는 R 데이터 분석, 이지퍼블리싱, 2019

'Computer engineering > R' 카테고리의 다른 글

데이터 정제하기 - 결측치  (2) 2019.04.11
dplyr 패키지 활용하기  (0) 2019.04.04
분석 도전(쉽게 배우는 R데이터 분석 123p)  (0) 2019.03.29
데이터를 파악해보자  (0) 2019.03.28
데이터 프레임  (0) 2019.03.22
Comments