본문 바로가기

R

5단원 분석 도전! p.123

ggplot2 패키지에는 미국 동북중부 437개 지역의 인구통계 정보를 담은 midwest라는 데이터가 들어 있습니다. midwest 데이터를 사용해 데이터 분석 문제를 해결해보세요.

 

문제 1. ggplot2의 midwest 데이터를 데이터 프레임 형태로 불러온 다음 데이터의 특징을 파악하세요.

install.packages("ggplot2")

library(ggplot2)

df_raw<-as.data.frame(ggplot2::midwest) #불러온 데이터를 df_raw라고 설정

head(df_raw) #raw 데이터 앞부분

tail(df_raw) #raw 데이터 뒷부분

View(df_raw) #raw 데이터 뷰어 창에서 확인

dim(df_raw) #차원

summary(df_raw) #요약 통계량

 

문제2. poptotal 변수를 total로, popasian 변수를 asian으로 수정하세요.

df_new<-rename(df_new, total=poptotal)
df_new<-rename(df_new, asian=popasian)

poptotal이 total로 바뀐 모습을 볼 수 있다. popasian도 마찬가지로 asian으로 바꼈다.

 

문제3. total, asian 변수를 이용해 '전체 인구 대비 아시아 인구 백분율' 파생변수를 만들고, 히스토그램을 만들어 도시들이 어떻게 분포하는지 살펴보세요.

전체 인구 대비 아시아 인구 백분율을 percent라는 이름의 파생변수로 만들겠다.

df_new$percent<-((df_new$asian/df_new$total)*100)
hist(df_new$percent)

위와 같은 그래프가 출력되는 것을 볼 수 있다.

 

문제4. 아시아 인구 백분율 전체 평균을 구하고, 평균을 초과하면 "large", 그 외에는 "small"을 부여하는 파생변수를 만들어 보세요.

평균을 기준으로 나오는 이 파생변수의 이름은 size라고 한다.

백분율의 전체 평균을 구하는 방법 - mean() 함수 이용

mean(df_new$percent)을 사용해 평균이 0.4872462로 나오는 것을 확인할 수 있다.

연속형인 편수들의 평균을 기준으로 값의 크기에 따라 "large"와 "small"로 나오기 때문에 조건문을 활용해준다.

df_new$size<-ifelse(df_new$percent>0.4872462, "large", "small")

 

문제5. "large"와 "small"에 해당하는 지역이 얼마나 되는지 빈도표와 빈도 막대 그래프를 만들어 확인해 보세요.

빈도표 출력하는 함수 : table()

빈도 막대 그래프 출력하는 함수 : qplot()

 

빈도표를 출력하면,

라고 출력되는 걸 볼 수 있다.

그리고, 빈도 막대 그래프 함수를 이용해서 출력하면,

위와 같은 그래프가 나오는 것을 볼 수 있다.

'R' 카테고리의 다른 글

text mining 미완성  (0) 2019.05.30
R markdown 사용법!  (0) 2019.05.30
5단원 리뷰  (0) 2019.04.09
4단원 리뷰  (0) 2019.04.08
3단원 리뷰  (0) 2019.04.08