[R] Tidycensus를 이용해 미국 통계자료 불러오기 - 미국 Census 자료 사용법
미국에서 도시계획을 공부하다보면 미국의 통계청이라고 볼 수 있는 U.S. Census Bureau 에서 자료를 다운로드 받아 활용해야 하는 경우가 많이 생긴다. Census 홈페이지에서 원하는 파일형식으로 직접 다운로드 받을 수도 있지만 R을 사용해서 개발환경 내에서 다운로드 받을 수도 있다. 그 과정에서 유용하게 쓰일 tidycensus 라이브러리에 대해 간략하게 정리하려고 한다. (작년에 R 조교를 하면서 공부했던 자료를 참고하여 정리했다. UIUC MUP UP494 Data Science for Planners)
라이브러리를 다운로드 받기 전에 먼저 준비해야 할 것은 아래 4가지!
1. 센서스 API 키 - 발급은 이 링크(api.census.gov/data/key_signup.html)에서 할 수 있음! 발급받은 키는 저장해둘 것
2. 내가 자료를 보고 싶은 지역 - 52개 주 혹은 1000개 이상의 카운티 중 어느 곳을 공부할 건지
3. 내가 자료를 보고 싶은 연도
4. 내가 보고 싶은 자료의 종류와 그에 따른 table code (인구, 교육 수준, 소득 수준..)
Tidycensus 에는 두가지 주요 함수가 쓰인다.
1. get_decennial() : 미국에서 10년마다 행하는 통계조사 데이터와 지리정보를 받을 수 있다. (ex. 1990, 2000, 2010, 2020)
사용예시
이번에는 get_decennial을 이용해서 10년 단위 통계조사 자료를 받아와보겠다. 데이터에 대한 설명은 이 문서(projects.ncsu.edu/woodlands/current_pdfs/teleconf_data_sources.pdf)에서 확인할 수 있다. 중요한 부분은 아래 표인듯.
2010년도 카운티 별 race/ethnicity자료를 받아와볼건데, 10년치 자료이다 보니 몇 분 소요될 수 있다..
table_code_decennial <- load_variables(2010, "sf1", cache = TRUE)
원하는 열을 아래처럼 뽑아서 바로 이름을 바꾼 채 다운로드할 수 있다. 일리노이주의 카운티별 데이터를 뽑았다.
vars <- c(White="P005003", Black_or_African_American="P005004",
Asian="P005006", Hispanic_or_Latino="P004003")
IL_decennial <- get_decennial(geography = "county", variables = vars,
year = 2010, state = "IL", output="wide")
2. get_acs(): 5년단위로 통계정보를 만드는 American Community Survey (ACS) 데이터를 받을 수 있다.
사용예시
library(tidycensus)
census_api_key("YOUR API KEY HERE")
* key는 다른 곳 (메모장이나 다른 script)에 꼭 저장해둘 것!
주 단위로 2017년 기준 ACS 5년 데이터를 받아오려고 한다. Variables 에는 내가 원하는 table code 를 적으면 되는데 아래 예시의 B01003_001은 population 데이터다. Geometry를 True로 설정하면 지리 정보도 함께 받을 수 있다. get_acs 함수를 이용해 받은 자료는 acsPop_2017이라는 변수에 저장했다. wide 설정은 한 행에 하나의 enumeration 이 돌고 각 열에 정보를 저장하겠다는 뜻!
acsPop_2017 <- get_acs(geography = "state", variables =c("B01003_001"),
year=2017, survey="acs5", output="wide", geometry=T)
아래와 같은 warning 문구가 뜨긴했지만.. 무시..
다운로드한 자료의 column 들의 의미는 아래와 같다.
1. GEOID : 행정단위구역 코드 - 위 예시에서는 state마다 주어지겠징
2. NAME : 지역이름 - 여기서는 주 이름
3. E로 끝나는 열 : estimates
4. M으로 끝나는 열 : estimate에 따른 margin of error
아래 코드를 실행하면 각 열의 정보를 확인할 수 있다.
table_code <- load_variables(2017, "acs5", cache = TRUE)
국내 자료가 아니라 아직 서툴고 정보도 많이 없지만. ㅠ_ㅠ 오늘 정리해서 뿌듯할 따름..!!
도움이 되었다면 우측상단 구독+좋아요+댓글 달아주세요 :D
사진은 비행하면서 찍은 후지산.
'컴퓨터 COMPUTER > Urban Data Analytics 데이터분석' 카테고리의 다른 글
TimeSeries Forecasting (2) 시계열 분석 데이터 Stationarity check - 파이썬으로 데이터의 계절성/주기성 파악하기 ACF, PACF 플롯 그리고 해석하기 (4) | 2022.01.22 |
---|---|
Time Series Forecasting (1) Anaconda 를 통해 Jupyter Notebook 환경 만들고 fbprophet 패키지 설치하는 법 (0) | 2021.10.02 |
[R 기초] Loop Function: lapply, sapply, tapply (0) | 2021.01.20 |
[R 기초] 기초 연산자와 데이터 타입/자료형의 종류 (0) | 2020.12.26 |
[R기초] R 설치, Rstudio 설치하기 Windows 10 (0) | 2020.10.21 |