1 성남시 데이터셋

성남통계 - 통계자료실에서 2018년 12월 31일 기준 2018년 기준 주민등록인구통계 원시자료2015년 기준 주민등록인구통계 원시자료 기준데이터로 성남시 인구통계 데이터 기준을 삼는다. 즉,

  • 2015년 12월 31일 기준: 2015년 기준 주민등록인구통계 원시자료 (2016-03-17)
  • 2018년 12월 31일 기준: 2018년 기준 주민등록인구통계 원시자료 (2019-06-17)
  • [예정] 2019년 12월 31일 기준: 2019년 기준 주민등록인구통계 원시자료 (???)
library(tidyverse)
library(readxl)

성남시_동명 <- c("연령", "성남시", "수정구", "신흥1동", "신흥2동", "신흥3동", "태평1동", "태평2동", "태평3동", "태평4동", "수진1동", "수진2동", "단대동", "산성동", "양지동", "복정동", "위례동", "신촌동", "고등동", "시흥동", "중원구", "성남동", "중앙동", "금광1동", "금광2동", "은행1동", "은행2동", "상대원1동", "상대원2동", "상대원3동", "하대원동", "도촌동", "분당구", "분당동", "수내1동", "수내2동", "수내3동", "정자동", "정자1동", "정자2동", "정자3동", "서현1동", "서현2동", "이매1동", "이매2동", "야탑1동", "야탑2동", "야탑3동", "판교동", "삼평동", "백현동", "금곡동", "구미1동", "구미동", "운중동")

수정구 <- c("신흥1동", "신흥2동", "신흥3동", "태평1동", "태평2동", "태평3동", "태평4동", "수진1동", "수진2동", "단대동", "산성동", "양지동", "복정동", "위례동", "신촌동", "고등동", "시흥동")
중원구 <- c("성남동", "중앙동", "금광1동", "금광2동", "은행1동", "은행2동", "상대원1동", "상대원2동", "상대원3동", "하대원동", "도촌동")
분당구 <- c("분당동", "수내1동", "수내2동", "수내3동", "정자동", "정자1동", "정자2동", "정자3동", "서현1동", "서현2동", "이매1동", "이매2동", "야탑1동", "야탑2동", "야탑3동", "판교동", "삼평동", "백현동", "금곡동", "구미1동", "구미동", "운중동")

## 2015년 12월 31일 기준
sn_2016 <- read_xlsx("data/post_mortem/2015년 기준 주민등록인구통계(성남시).xlsx", sheet="표4", skip=3)

sn_2016_dat <- sn_2016 %>% 
  select("...2", matches("계.*")) %>% 
  set_names(성남시_동명) %>% 
  slice(2:n()) %>% 
  filter(str_detect(연령, "[0-9]{1,3}\\s+?세|[0-9]{3}\\s?세이상")) %>% 
  mutate(연령 = parse_number(연령)) %>% 
  select(-성남시, -수정구, -중원구, -분당구)

sn_2016_df <- sn_2016_dat %>% 
  pivot_longer(cols = 신흥1동:운중동, names_to = "동명", values_to="인구수") %>% 
  mutate(연도="2016년") %>% 
  select(연도, everything())

sn_2016_df %>% 
  summarise(총인구수 = sum(인구수)) %>% 
  pull() == 971424 # 971,424 
[1] TRUE
[1] TRUE

2 분당구 변화

2.2 선거구별 인구변화

# A tibble: 2 x 5
  선거구명 `2016년` `2019년` 인구변화 변화율
  <chr>       <dbl>    <dbl>    <dbl>  <dbl>
1 분당갑     261060   258996    -2064 -0.797
2 분당을     240829   236333    -4496 -1.90 

2.3 동별 인구변화: 분당구

3 (비)유권자

# A tibble: 2 x 5
# Groups:   유권여부 [2]
  유권여부 `2016년` `2019년` 인구변화  변화율
  <chr>       <dbl>    <dbl>    <dbl>   <dbl>
1 비유권자   104890    95035    -9855 -10.4  
2 유권자     396999   400294     3295   0.823

3.1 (비)유권자: 선거구별

# A tibble: 4 x 6
# Groups:   선거구명, 유권여부 [4]
  선거구명 유권여부 `2016년` `2019년` 인구변화  변화율
  <chr>    <chr>       <dbl>    <dbl>    <dbl>   <dbl>
1 분당갑   비권        57495    52805    -4690  -8.88 
2 분당갑   유권       203565   206191     2626   1.27 
3 분당을   비권        47395    42230    -5165 -12.2  
4 분당을   유권       193434   194103      669   0.345

3.2 (비)유권자: 동별

4 연령

# A tibble: 5 x 5
# Groups:   연령대 [5]
  연령대 `2016년` `2019년` 인구변화  변화율
  <chr>     <dbl>    <dbl>    <dbl>   <dbl>
1 20대      76058    74892    -1166 -0.0156
2 30대      80639    75717    -4922 -0.0650
3 40대      94958    91044    -3914 -0.0430
4 50대      74219    75586     1367  0.0181
5 60대      71125    83055    11930  0.144 

4.1 연령: 선거구별

4.2 연령: 분당을 동별