Computer engineering/R
분석 도전(쉽게 배우는 R데이터 분석 160p)
JuNM0418
2019. 4. 4. 23:46
- 데이터 가지고 오기
- 데이터 모양 확인
- 데이터 타입 확인
- 데이터 기초 분석
- 데이터 클린징
- 데이터 시각화
다음과 같은 과정을 통해서 문제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