언어/R

2. 미국 인구 데이터(midwest) 실습

차가운오미자 2021. 6. 15. 15:20

midwest 데이터 : ggplot2 패키지 안에 있는 미국 인구통계 데이터

 

과제

1) poptotal 변수명를 total로, popasian 변수명를 asian으로 바꾸기

2) total, asian을 이용해 '전체 인구 대비 아시아인 인구 비율' 파생 변수 생성하고, 히스토그램 만들기

3) 아시아 인구 백분율 전체 평균을 구하고, 평균을 초과하면 ‘large’, 그외에는 ‘small’로 하여 파생변수를 만들자.

4) large와 small에 해당하는 지역이 얼마나 되는지 빈도표와 빈도 막대 그래프를 그려 확인해 보자.

 

코드

1) 데이터 로드

ggplot2 패키지를 로드하고, midwest 데이터를 가져온다. 후에 원본이 필요할 수도 있으니 복사본을 만든다.

rename()을 이용하기 위해서 dplyr 패키지도 로드해준다.

library(ggplot2)
library(dplyr)
pop <- as.data.frame(ggplot2::midwest)
pop_copy <- pop

 

2) rename

column을 사용하기 쉽게 poptotal을 total로, popasian을 asian으로 rename() 함수를 이용하여 바꿔준다.

pop_copy <- rename(pop_copy, total=poptotal, asian = popasian)
head(pop_copy)

잘 바뀌었는지 확인하지 위해 head()를 출력해본다.

3) 파생변수1: asian_percentage

새로운 파생변수 asian_percentage를 pop_copy에 만든다. str()을 이용해 잘 만들었는지 확인해보았다.

# asian population / whole population = new variable
pop_copy$asian_percentage <- (pop_copy$asian / pop_copy$total)*100
head(pop_copy)

4) 히스토그램, 빈도막대

만든 파생변수로 아시아인 비율을 히스토그램과 빈도막대를 만들어보았다.

# draw a histogram of asian percentage
hist(pop_copy$asian_percentage)
qplot(pop_copy$asian_percentage)

아래는 만들어진 histogram과 qplot이다.

 

5) 파생변수2: overmean

파생변수 overmean은 각 아시아인비율이 평균 이상인 경우 'larger', 그렇지 않은 경우 'smaller'값을 가지는 변수이다. 이를 위해 평균을 우선 구했다. overmean은 ifelse()를 이용하여 만들어줬다.

#is it larger? - 평균 이상인지 보여주는 파생변수 생성
pop_copy$overmean <- ifelse(pop_copy$asian_percentage>mean, "larger", "smaller")
str(pop_copy)

6) 파생변수 그래픽 확인

table()은 빈도표를 만드는 함수이다. 칼럼의 갯수를 보여준다.

빈도막대도 만들어보았다.

#draw a graph of overmean
# 빈도표
table(pop_copy$overmean)
# 빈도 막대
qplot(pop_copy$overmean)

아래는 출력된 table이다. (large 와 small의 갯수)

아래는 출력된 빈도막대(qplot)이다.

 

'언어 > R' 카테고리의 다른 글

[TS] foreign package is not available  (0) 2021.06.15
4. 그래프 그리기  (0) 2021.06.15
3. 데이터 전처리  (0) 2021.06.15
1. 변수, Data frame, 간단한 데이터 분석  (0) 2021.06.15
0. R, R Studio설치 및 기본  (0) 2021.06.15