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 동별 인구변화: 분당을

3 (비)유권자

# A tibble: 2 x 5
# Groups:   유권여부 [2]
  유권여부 `2016년` `2019년` 인구변화  변화율
  <chr>       <dbl>    <dbl>    <dbl>   <dbl>
1 비유권자    47395    42230    -5165 -12.2  
2 유권자     193434   194103      669   0.345

3.1 (비)유권자: 동별

4 연령

# A tibble: 5 x 5
# Groups:   연령대 [5]
  연령대 `2016년` `2019년` 인구변화  변화율
  <chr>     <dbl>    <dbl>    <dbl>   <dbl>
1 20대      37190    36784     -406 -0.0110
2 30대      39234    37129    -2105 -0.0567
3 40대      46180    43731    -2449 -0.0560
4 50대      34862    35420      558  0.0158
5 60대      35968    41039     5071  0.124 

4.1 연령: 분당을 동별

5 시각화