2016년 4월 27일 수요일

연령대별 장래 인구 추계 (1960 ~ 2060)



통계청 자료로 만든 연령대별 장래 인구 추계. (1960 ~ 2060)
다들 얘기하는 노령화 사회로의 변화를 예고하고 있다.
말그대로 100세시대, '노후'에 대한 대비는 개인의 준비 문제가 아니라 사회의 문제로 심각하게 논의되어야 할 것 같다.

library(ggplot2)
library(dplyr)
library(scales)
library(reshape2)

df <- as.data.frame(read.csv("population2.csv", header=TRUE))
head(df)

df2 <- df %>% mutate(age_range2 = '0~14')
df2[4:13, ]$age_range2 <- '15~64'
df2[14:20, ]$age_range2 <- '65+'

df2m <- melt(cbind(df2[2:12], age_range=df2$age_range2), id.vars=c('age_range'))
levels(df2m$variable) <- gsub("X", "", levels(df2m$variable))

# for annotation
year_total <- 
  df2m %>% 
  group_by(Year) %>%
  summarise(year_total = sum(Percentage))

age_range_total <- df2m %>% 
  group_by(Year, age_range) %>% 
  summarise(avg = sum(Percentage))

df2m_tmp <- left_join(age_range_total, year_total, by="Year")
df2m_tmp <- df2m_tmp %>% mutate(prop = avg/year_total)
df2m_tmp <- df2m_tmp %>% mutate(cumsum = cumsum(prop))

# plotting with annotation
ggplot(df2m,aes(x = Year, y = Percentage, fill = age_range)) + 
  geom_bar(position = "fill",stat = "identity", ylab='percentage', xlab='year') + 
  scale_y_continuous(labels = percent_format()) +
  annotate(geom="text", 
           x=df2m_tmp$Year, 
           y=df2m_tmp$cumsum, 
           label=paste0(as.character(round(df2m_tmp$prop*100, digits=1)),'%'), size=4) 


댓글 없음:

댓글 쓰기