Lifetable from 1970 to 2013 in Korea

Data

From National Statistics Office, download excel format data, and manipulate it for a long time. 5 year interval, but enough to check the changes

# install.packages("xlsx", repos = "https://cran.rstudio.com")
library(xlsx)
## Loading required package: rJava
## Loading required package: xlsxjars
library(knitr)
lt.kr.70.13 <- read.xlsx("../data/lifetable_kr.xlsx", 1, startRow = 3, endRow = 24, colIndex = 1:133, header = FALSE)
str(lt.kr.70.13)
## 'data.frame':    22 obs. of  133 variables:
##  $ X1  : num  0 1 5 10 15 20 25 30 35 40 ...
##  $ X2  : num  100000 95848 94546 93413 92625 ...
##  $ X3  : num  100000 95811 94493 93303 92465 ...
##  $ X4  : num  100000 95894 94610 93539 92803 ...
##  $ X5  : num  100000 95962 94694 93626 92876 ...
##  $ X6  : num  100000 95925 94641 93517 92720 ...
##  $ X7  : num  100000 96007 94757 93749 93049 ...
##  $ X8  : num  100000 96072 94838 93831 93117 ...
##  $ X9  : num  100000 96036 94785 93724 92966 ...
##  $ X10 : num  100000 96117 94900 93951 93286 ...
##  $ X11 : num  100000 96180 94978 94029 93350 ...
##  $ X12 : num  100000 96144 94926 93924 93202 ...
##  $ X13 : num  100000 96224 95039 94146 93514 ...
##  $ X14 : num  100000 96285 95114 94219 93574 ...
##  $ X15 : num  100000 96249 95063 94117 93430 ...
##  $ X16 : num  100000 96328 95174 94334 93733 ...
##  $ X17 : num  100000 96386 95247 94403 93789 ...
##  $ X18 : num  100000 96351 95196 94303 93650 ...
##  $ X19 : num  100000 96429 95306 94515 93944 ...
##  $ X20 : num  100000 96485 95376 94581 93997 ...
##  $ X21 : num  100000 96450 95326 94483 93861 ...
##  $ X22 : num  100000 96527 95434 94690 94147 ...
##  $ X23 : num  100000 96582 95502 94752 94197 ...
##  $ X24 : num  100000 96547 95452 94656 94065 ...
##  $ X25 : num  100000 96623 95559 94859 94342 ...
##  $ X26 : num  100000 96675 95624 94917 94389 ...
##  $ X27 : num  100000 96641 95575 94824 94261 ...
##  $ X28 : num  100000 96716 95680 95021 94531 ...
##  $ X29 : num  100000 96766 95743 95077 94575 ...
##  $ X30 : num  100000 96732 95694 94985 94450 ...
##  $ X31 : num  100000 96806 95798 95178 94712 ...
##  $ X32 : num  100000 96980 96022 95389 94927 ...
##  $ X33 : num  100000 96955 95985 95312 94815 ...
##  $ X34 : num  100000 97010 96065 95474 95050 ...
##  $ X35 : num  100000 97180 96284 95681 95256 ...
##  $ X36 : num  100000 97162 96257 95618 95156 ...
##  $ X37 : num  100000 97202 96315 95751 95366 ...
##  $ X38 : num  100000 97367 96528 95955 95563 ...
##  $ X39 : num  100000 97356 96510 95905 95474 ...
##  $ X40 : num  100000 97381 96549 96011 95661 ...
##  $ X41 : num  100000 97541 96756 96211 95851 ...
##  $ X42 : num  100000 97536 96747 96172 95772 ...
##  $ X43 : num  100000 97548 96768 96255 95938 ...
##  $ X44 : num  100000 97809 97108 96608 96279 ...
##  $ X45 : num  100000 97776 97062 96530 96160 ...
##  $ X46 : num  100000 97848 97161 96695 96410 ...
##  $ X47 : num  100000 98049 97423 96963 96663 ...
##  $ X48 : num  100000 97993 97347 96854 96513 ...
##  $ X49 : num  100000 98111 97507 97083 96827 ...
##  $ X50 : num  100000 98230 97661 97243 96956 ...
##  $ X51 : num  100000 98176 97588 97134 96810 ...
##  $ X52 : num  100000 98290 97743 97362 97114 ...
##  $ X53 : num  100000 98394 97878 97497 97222 ...
##  $ X54 : num  100000 98342 97807 97389 97082 ...
##  $ X55 : num  100000 98453 97956 97615 97375 ...
##  $ X56 : num  100000 98518 98040 97690 97431 ...
##  $ X57 : num  100000 98460 97962 97571 97274 ...
##  $ X58 : num  100000 98582 98127 97823 97603 ...
##  $ X59 : num  100000 98631 98190 97869 97624 ...
##  $ X60 : num  100000 98570 98107 97740 97454 ...
##  $ X61 : num  100000 98701 98283 98012 97810 ...
##  $ X62 : num  100000 98743 98337 98041 97814 ...
##  $ X63 : num  100000 98674 98244 97903 97637 ...
##  $ X64 : num  100000 98822 98443 98195 98009 ...
##  $ X65 : num  100000 98846 98473 98199 97989 ...
##  $ X66 : num  100000 98770 98371 98055 97807 ...
##  $ X67 : num  100000 98933 98589 98361 98190 ...
##  $ X68 : num  100000 98939 98596 98341 98149 ...
##  $ X69 : num  100000 98872 98506 98212 97984 ...
##  $ X70 : num  100000 99016 98698 98488 98333 ...
##  $ X71 : num  100000 99025 98709 98472 98297 ...
##  $ X72 : num  100000 98966 98630 98355 98148 ...
##  $ X73 : num  100000 99093 98799 98604 98464 ...
##  $ X74 : num  100000 99097 98804 98585 98414 ...
##  $ X75 : num  100000 99049 98737 98481 98279 ...
##  $ X76 : num  100000 99153 98880 98701 98565 ...
##  $ X77 : num  100000 99164 98891 98689 98523 ...
##  $ X78 : num  100000 99125 98836 98597 98400 ...
##  $ X79 : num  100000 99209 98955 98791 98659 ...
##  $ X80 : num  100000 99226 98978 98797 98644 ...
##  $ X81 : num  100000 99195 98930 98716 98534 ...
##  $ X82 : num  100000 99262 99032 98886 98766 ...
##  $ X83 : num  100000 99284 99057 98896 98755 ...
##  $ X84 : num  100000 99259 99016 98825 98658 ...
##  $ X85 : num  100000 99311 99103 98974 98863 ...
##  $ X86 : num  100000 99344 99137 98990 98866 ...
##  $ X87 : num  100000 99326 99104 98932 98785 ...
##  $ X88 : num  100000 99362 99173 99053 98954 ...
##  $ X89 : num  100000 99398 99211 99076 98966 ...
##  $ X90 : num  100000 99387 99184 99029 98900 ...
##  $ X91 : num  100000 99409 99238 99127 99038 ...
##  $ X92 : num  100000 99406 99225 99098 98995 ...
##  $ X93 : num  100000 99373 99177 99031 98912 ...
##  $ X94 : num  100000 99441 99277 99172 99087 ...
##  $ X95 : num  100000 99428 99253 99134 99038 ...
##  $ X96 : num  100000 99379 99188 99051 98942 ...
##  $ X97 : num  100000 99483 99325 99225 99145 ...
##  $ X98 : num  100000 99449 99290 99182 99094 ...
##  $ X99 : num  100000 99403 99233 99109 99010 ...
##   [list output truncated]
gender.yr <- paste(c("A", "M", "F"), rep(1970:2013, each = 3), sep = "")
options(width = 180)
names(lt.kr.70.13) <- c("age", gender.yr)
cbind(head(gender.yr, n = 10), tail(gender.yr, n = 10))
##       [,1]    [,2]   
##  [1,] "A1970" "F2010"
##  [2,] "M1970" "A2011"
##  [3,] "F1970" "M2011"
##  [4,] "A1971" "F2011"
##  [5,] "M1971" "A2012"
##  [6,] "F1971" "M2012"
##  [7,] "A1972" "F2012"
##  [8,] "M1972" "A2013"
##  [9,] "F1972" "M2013"
## [10,] "A1973" "F2013"
str(lt.kr.70.13)
## 'data.frame':    22 obs. of  133 variables:
##  $ age  : num  0 1 5 10 15 20 25 30 35 40 ...
##  $ A1970: num  100000 95848 94546 93413 92625 ...
##  $ M1970: num  100000 95811 94493 93303 92465 ...
##  $ F1970: num  100000 95894 94610 93539 92803 ...
##  $ A1971: num  100000 95962 94694 93626 92876 ...
##  $ M1971: num  100000 95925 94641 93517 92720 ...
##  $ F1971: num  100000 96007 94757 93749 93049 ...
##  $ A1972: num  100000 96072 94838 93831 93117 ...
##  $ M1972: num  100000 96036 94785 93724 92966 ...
##  $ F1972: num  100000 96117 94900 93951 93286 ...
##  $ A1973: num  100000 96180 94978 94029 93350 ...
##  $ M1973: num  100000 96144 94926 93924 93202 ...
##  $ F1973: num  100000 96224 95039 94146 93514 ...
##  $ A1974: num  100000 96285 95114 94219 93574 ...
##  $ M1974: num  100000 96249 95063 94117 93430 ...
##  $ F1974: num  100000 96328 95174 94334 93733 ...
##  $ A1975: num  100000 96386 95247 94403 93789 ...
##  $ M1975: num  100000 96351 95196 94303 93650 ...
##  $ F1975: num  100000 96429 95306 94515 93944 ...
##  $ A1976: num  100000 96485 95376 94581 93997 ...
##  $ M1976: num  100000 96450 95326 94483 93861 ...
##  $ F1976: num  100000 96527 95434 94690 94147 ...
##  $ A1977: num  100000 96582 95502 94752 94197 ...
##  $ M1977: num  100000 96547 95452 94656 94065 ...
##  $ F1977: num  100000 96623 95559 94859 94342 ...
##  $ A1978: num  100000 96675 95624 94917 94389 ...
##  $ M1978: num  100000 96641 95575 94824 94261 ...
##  $ F1978: num  100000 96716 95680 95021 94531 ...
##  $ A1979: num  100000 96766 95743 95077 94575 ...
##  $ M1979: num  100000 96732 95694 94985 94450 ...
##  $ F1979: num  100000 96806 95798 95178 94712 ...
##  $ A1980: num  100000 96980 96022 95389 94927 ...
##  $ M1980: num  100000 96955 95985 95312 94815 ...
##  $ F1980: num  100000 97010 96065 95474 95050 ...
##  $ A1981: num  100000 97180 96284 95681 95256 ...
##  $ M1981: num  100000 97162 96257 95618 95156 ...
##  $ F1981: num  100000 97202 96315 95751 95366 ...
##  $ A1982: num  100000 97367 96528 95955 95563 ...
##  $ M1982: num  100000 97356 96510 95905 95474 ...
##  $ F1982: num  100000 97381 96549 96011 95661 ...
##  $ A1983: num  100000 97541 96756 96211 95851 ...
##  $ M1983: num  100000 97536 96747 96172 95772 ...
##  $ F1983: num  100000 97548 96768 96255 95938 ...
##  $ A1984: num  100000 97809 97108 96608 96279 ...
##  $ M1984: num  100000 97776 97062 96530 96160 ...
##  $ F1984: num  100000 97848 97161 96695 96410 ...
##  $ A1985: num  100000 98049 97423 96963 96663 ...
##  $ M1985: num  100000 97993 97347 96854 96513 ...
##  $ F1985: num  100000 98111 97507 97083 96827 ...
##  $ A1986: num  100000 98230 97661 97243 96956 ...
##  $ M1986: num  100000 98176 97588 97134 96810 ...
##  $ F1986: num  100000 98290 97743 97362 97114 ...
##  $ A1987: num  100000 98394 97878 97497 97222 ...
##  $ M1987: num  100000 98342 97807 97389 97082 ...
##  $ F1987: num  100000 98453 97956 97615 97375 ...
##  $ A1988: num  100000 98518 98040 97690 97431 ...
##  $ M1988: num  100000 98460 97962 97571 97274 ...
##  $ F1988: num  100000 98582 98127 97823 97603 ...
##  $ A1989: num  100000 98631 98190 97869 97624 ...
##  $ M1989: num  100000 98570 98107 97740 97454 ...
##  $ F1989: num  100000 98701 98283 98012 97810 ...
##  $ A1990: num  100000 98743 98337 98041 97814 ...
##  $ M1990: num  100000 98674 98244 97903 97637 ...
##  $ F1990: num  100000 98822 98443 98195 98009 ...
##  $ A1991: num  100000 98846 98473 98199 97989 ...
##  $ M1991: num  100000 98770 98371 98055 97807 ...
##  $ F1991: num  100000 98933 98589 98361 98190 ...
##  $ A1992: num  100000 98939 98596 98341 98149 ...
##  $ M1992: num  100000 98872 98506 98212 97984 ...
##  $ F1992: num  100000 99016 98698 98488 98333 ...
##  $ A1993: num  100000 99025 98709 98472 98297 ...
##  $ M1993: num  100000 98966 98630 98355 98148 ...
##  $ F1993: num  100000 99093 98799 98604 98464 ...
##  $ A1994: num  100000 99097 98804 98585 98414 ...
##  $ M1994: num  100000 99049 98737 98481 98279 ...
##  $ F1994: num  100000 99153 98880 98701 98565 ...
##  $ A1995: num  100000 99164 98891 98689 98523 ...
##  $ M1995: num  100000 99125 98836 98597 98400 ...
##  $ F1995: num  100000 99209 98955 98791 98659 ...
##  $ A1996: num  100000 99226 98978 98797 98644 ...
##  $ M1996: num  100000 99195 98930 98716 98534 ...
##  $ F1996: num  100000 99262 99032 98886 98766 ...
##  $ A1997: num  100000 99284 99057 98896 98755 ...
##  $ M1997: num  100000 99259 99016 98825 98658 ...
##  $ F1997: num  100000 99311 99103 98974 98863 ...
##  $ A1998: num  100000 99344 99137 98990 98866 ...
##  $ M1998: num  100000 99326 99104 98932 98785 ...
##  $ F1998: num  100000 99362 99173 99053 98954 ...
##  $ A1999: num  100000 99398 99211 99076 98966 ...
##  $ M1999: num  100000 99387 99184 99029 98900 ...
##  $ F1999: num  100000 99409 99238 99127 99038 ...
##  $ A2000: num  100000 99406 99225 99098 98995 ...
##  $ M2000: num  100000 99373 99177 99031 98912 ...
##  $ F2000: num  100000 99441 99277 99172 99087 ...
##  $ A2001: num  100000 99428 99253 99134 99038 ...
##  $ M2001: num  100000 99379 99188 99051 98942 ...
##  $ F2001: num  100000 99483 99325 99225 99145 ...
##  $ A2002: num  100000 99449 99290 99182 99094 ...
##  $ M2002: num  100000 99403 99233 99109 99010 ...
##   [list output truncated]

Plot

Compare the survival function plots of 1970 and 2013

# par(family = "AppleGothic")
plot(A2013 ~ age, data = lt.kr.70.13, type = "b", ann = FALSE, xaxt = "n", yaxt = "n")
lines(A1970 ~ age, data = lt.kr.70.13, type = "b")
axis(side = 1, at = lt.kr.70.13$age, label = lt.kr.70.13$age)
axis(side = 2, at = seq(0, 100000, by = 25000), labels = seq(0, 100, by = 25))
main.title <- "Survival Function, 1970 vs 2013"
x.lab <- "Age (Years)"
y.lab <- "Proportion of Survival (%)"
title(main = main.title, xlab = x.lab, ylab = y.lab)
text(x = c(60, 82), y = c(52000, 80000), labels = c(1970, 2013))

Shade the difference of life expectancies

Coordinates for Polygon

poly.kr.x <- c(lt.kr.70.13$age, rev(lt.kr.70.13$age))
poly.kr.y <- c(lt.kr.70.13$A2013, rev(lt.kr.70.13$A1970))
poly.kr <- data.frame(x = poly.kr.x, y = poly.kr.y)

Shading

Use red color to specify the difference

# par(family="AppleGothic")
plot(A2013 ~ age, data = lt.kr.70.13, type = "b", ann = FALSE, xaxt = "n", yaxt = "n")
lines(A1970 ~ age, data = lt.kr.70.13, type = "b")
axis(side = 1, at = lt.kr.70.13$age, label = lt.kr.70.13$age)
axis(side = 2, at = seq(0, 100000, by = 25000), labels = seq(0, 100, by = 25))
main.title <- "Survival Function, 1970 vs 2013"
x.lab <- "Age (Years)"
y.lab <- "Proportion of Survival (%)"
title(main = main.title, xlab = x.lab, ylab = y.lab)
text(x = c(60, 82), y = c(52000, 80000), labels = c(1970, 2013))
polygon(poly.kr, angle = 45, density = 15, col = "grey", border = NA)

Compare the areas

source the area.R() function that was dump()ed.

source("area.R")
options(digits = 3)
(s.2013 <- area.R(lt.kr.70.13$age, lt.kr.70.13$A2013)/100000)
## [1] 81.8
(s.1970 <- area.R(lt.kr.70.13$age, lt.kr.70.13$A1970)/100000)
## [1] 61.4
s.2013 - s.1970
## [1] 20.4

Changes of Life Expectancies

In order to compute the genderwise life expectancies use mapply(). Fix x = lt.kr.70.13$age in area.R(x, y), and extract the column indices from each column

  • Extracting column indices
# substr(names(lt.kr.70.13), start = 1, stop = 1)
A.idx <- substr(names(lt.kr.70.13), start = 1, stop = 1) == "A"
M.idx <- substr(names(lt.kr.70.13), start = 1, stop = 1) == "M"
F.idx <- substr(names(lt.kr.70.13), start = 1, stop = 1) == "F"
  • Use mapply()
    • Note how to define an anonymous function
    • Calculate life expectancies for each year
(A.e0 <- mapply(function(y) {area.R(x = lt.kr.70.13$age, y)}, lt.kr.70.13[, A.idx])/100000)
## A1970 A1971 A1972 A1973 A1974 A1975 A1976 A1977 A1978 A1979 A1980 A1981 A1982 A1983 A1984 A1985 A1986 A1987 A1988 A1989 A1990 A1991 A1992 A1993 A1994 A1995 A1996 A1997 A1998 A1999 
##  61.4  61.8  62.2  62.5  62.9  63.2  63.5  63.9  64.2  64.5  65.0  65.4  65.9  66.3  66.9  67.5  68.1  68.7  69.2  69.6  70.0  70.4  70.8  72.4  72.7  73.1  73.5  73.9  74.3  75.5 
## A2000 A2001 A2002 A2003 A2004 A2005 A2006 A2007 A2008 A2009 A2010 A2011 A2012 A2013 
##  76.0  76.5  77.0  77.4  78.0  78.6  79.1  79.5  80.0  80.5  80.7  81.1  81.4  81.8
(M.e0 <- mapply(function(y) {area.R(x = lt.kr.70.13$age, y)}, lt.kr.70.13[, M.idx])/100000)
## M1970 M1971 M1972 M1973 M1974 M1975 M1976 M1977 M1978 M1979 M1980 M1981 M1982 M1983 M1984 M1985 M1986 M1987 M1988 M1989 M1990 M1991 M1992 M1993 M1994 M1995 M1996 M1997 M1998 M1999 
##  58.5  58.8  59.1  59.4  59.7  60.0  60.2  60.5  60.8  61.0  61.5  62.0  62.4  62.9  63.5  64.0  64.7  65.3  65.8  66.2  66.7  67.0  67.5  68.6  69.0  69.3  69.8  70.3  70.8  71.7 
## M2000 M2001 M2002 M2003 M2004 M2005 M2006 M2007 M2008 M2009 M2010 M2011 M2012 M2013 
##  72.3  72.8  73.4  73.8  74.5  75.1  75.7  76.1  76.5  77.0  77.2  77.6  77.9  78.5
(F.e0 <- mapply(function(y) {area.R(x = lt.kr.70.13$age, y)}, lt.kr.70.13[, F.idx])/100000)
## F1970 F1971 F1972 F1973 F1974 F1975 F1976 F1977 F1978 F1979 F1980 F1981 F1982 F1983 F1984 F1985 F1986 F1987 F1988 F1989 F1990 F1991 F1992 F1993 F1994 F1995 F1996 F1997 F1998 F1999 
##  64.5  65.0  65.4  65.9  66.3  66.7  67.1  67.4  67.8  68.1  68.6  69.1  69.5  70.0  70.6  71.2  71.7  72.2  72.7  73.1  73.5  73.8  74.2  76.1  76.4  76.7  77.1  77.4  77.7  79.2 
## F2000 F2001 F2002 F2003 F2004 F2005 F2006 F2007 F2008 F2009 F2010 F2011 F2012 F2013 
##  79.6  80.0  80.4  80.8  81.3  81.8  82.3  82.7  83.2  83.6  83.9  84.3  84.5  84.9

plots

  • Use plot() and lines()
plot(1970:2013, A.e0, type = "b", ylim = c(50, 90), ann = FALSE, pch = 17)
lines(1970:2013, M.e0, col = "blue", type = "b", pch = 17)
lines(1970:2013, F.e0, col = "red", type = "b", pch = 17)
main.title.2 <- "Change of Life Expectancy"
x.lab.2 <- "Year"
y.lab.2 <- "Life Expectancy (Years)"
title(main = main.title.2, xlab = x.lab.2, ylab = y.lab.2)
legend("topleft", inset = 0.1, pch = 17, col = c("red", "black", "blue"), legend=c("Women", "All", "Men"))

ggplot

Data Preparation

Put reshape2 in the library to construct a long form data frame for ggplot() and apply melt(). Set up and another data frame composed of age, A1970, A2013

(lt.kr.df <- lt.kr.70.13[c("age", "A1970", "A2013")])
##    age  A1970  A2013
## 1    0 100000 100000
## 2    1  95848  99706
## 3    5  94546  99632
## 4   10  93413  99578
## 5   15  92625  99531
## 6   20  91441  99415
## 7   25  89722  99233
## 8   30  88194  98991
## 9   35  86596  98661
## 10  40  84906  98218
## 11  45  82264  97544
## 12  50  78518  96513
## 13  55  73142  94992
## 14  60  65810  92889
## 15  65  56696  89864
## 16  70  45939  85435
## 17  75  34437  78024
## 18  80  21282  66215
## 19  85      0  49212
## 20  90      0  29191
## 21  95      0  12261
## 22 100      0   3149

library(reshape2), and , use melt() to transform into long form data frame

library(reshape2)
(lt.kr.melt <- melt(lt.kr.df, id.vars = "age", measure.vars = c("A1970", "A2013"), variable.name = "years", value.name = "lx"))
##    age years     lx
## 1    0 A1970 100000
## 2    1 A1970  95848
## 3    5 A1970  94546
## 4   10 A1970  93413
## 5   15 A1970  92625
## 6   20 A1970  91441
## 7   25 A1970  89722
## 8   30 A1970  88194
## 9   35 A1970  86596
## 10  40 A1970  84906
## 11  45 A1970  82264
## 12  50 A1970  78518
## 13  55 A1970  73142
## 14  60 A1970  65810
## 15  65 A1970  56696
## 16  70 A1970  45939
## 17  75 A1970  34437
## 18  80 A1970  21282
## 19  85 A1970      0
## 20  90 A1970      0
## 21  95 A1970      0
## 22 100 A1970      0
## 23   0 A2013 100000
## 24   1 A2013  99706
## 25   5 A2013  99632
## 26  10 A2013  99578
## 27  15 A2013  99531
## 28  20 A2013  99415
## 29  25 A2013  99233
## 30  30 A2013  98991
## 31  35 A2013  98661
## 32  40 A2013  98218
## 33  45 A2013  97544
## 34  50 A2013  96513
## 35  55 A2013  94992
## 36  60 A2013  92889
## 37  65 A2013  89864
## 38  70 A2013  85435
## 39  75 A2013  78024
## 40  80 A2013  66215
## 41  85 A2013  49212
## 42  90 A2013  29191
## 43  95 A2013  12261
## 44 100 A2013   3149

Plots

Compare survival function plots for 1970 and 2013 with ggplot(). What is the effect of the order of operation in geom_point() and shape=21:22, fill="white"

library(ggplot2)
#(g.kr.1 <- ggplot(data = lt.kr.melt, aes(x = age, y = lx/1000, colour = years, shape = years)) + geom_line())
(g.kr.1 <- ggplot() + 
  geom_line(data = lt.kr.melt, aes(x = age, y = lx/1000, colour = years)))

(g.kr.2 <- g.kr.1 + 
  geom_point(data = lt.kr.melt, aes(x = age, y = lx/1000, colour = years), shape = 21, fill = "white", size = 2) +
  theme_bw())

(g.kr.3 <- g.kr.2 + 
  xlab(x.lab) +
  ylab(y.lab) +
  ggtitle(main.title) +
  scale_colour_discrete(name = "Years", labels = c("1970", "2013")))

(g.kr.4 <- g.kr.3 +
  theme(legend.position=c(0.25, 0.25)))

Polygon

Use poly.kr.

(p.kr.1 <- g.kr.4 +
  geom_polygon(data = poly.kr, aes(x = x, y = y/1000), alpha = 0.3, fill = "grey"))

(p.kr.2 <- p.kr.1 +
  geom_point(data = lt.kr.melt, aes(x = age, y = lx/1000, colour = years), shape = 21, fill = "white", size = 2))

(p.kr.3 <- p.kr.2 + annotate("text", x = c(55, 63, 80), y = c(60, 75, 85), label = c("1970", "Difference of\nLife\nExpectancies", "2013"), colour = "blue"))

Changes with respect to gender

Data reshaping

(lt.e0.df <- data.frame(year = 1970:2013, A = A.e0, M = M.e0, F = F.e0))
##       year    A    M    F
## A1970 1970 61.4 58.5 64.5
## A1971 1971 61.8 58.8 65.0
## A1972 1972 62.2 59.1 65.4
## A1973 1973 62.5 59.4 65.9
## A1974 1974 62.9 59.7 66.3
## A1975 1975 63.2 60.0 66.7
## A1976 1976 63.5 60.2 67.1
## A1977 1977 63.9 60.5 67.4
## A1978 1978 64.2 60.8 67.8
## A1979 1979 64.5 61.0 68.1
## A1980 1980 65.0 61.5 68.6
## A1981 1981 65.4 62.0 69.1
## A1982 1982 65.9 62.4 69.5
## A1983 1983 66.3 62.9 70.0
## A1984 1984 66.9 63.5 70.6
## A1985 1985 67.5 64.0 71.2
## A1986 1986 68.1 64.7 71.7
## A1987 1987 68.7 65.3 72.2
## A1988 1988 69.2 65.8 72.7
## A1989 1989 69.6 66.2 73.1
## A1990 1990 70.0 66.7 73.5
## A1991 1991 70.4 67.0 73.8
## A1992 1992 70.8 67.5 74.2
## A1993 1993 72.4 68.6 76.1
## A1994 1994 72.7 69.0 76.4
## A1995 1995 73.1 69.3 76.7
## A1996 1996 73.5 69.8 77.1
## A1997 1997 73.9 70.3 77.4
## A1998 1998 74.3 70.8 77.7
## A1999 1999 75.5 71.7 79.2
## A2000 2000 76.0 72.3 79.6
## A2001 2001 76.5 72.8 80.0
## A2002 2002 77.0 73.4 80.4
## A2003 2003 77.4 73.8 80.8
## A2004 2004 78.0 74.5 81.3
## A2005 2005 78.6 75.1 81.8
## A2006 2006 79.1 75.7 82.3
## A2007 2007 79.5 76.1 82.7
## A2008 2008 80.0 76.5 83.2
## A2009 2009 80.5 77.0 83.6
## A2010 2010 80.7 77.2 83.9
## A2011 2011 81.1 77.6 84.3
## A2012 2012 81.4 77.9 84.5
## A2013 2013 81.8 78.5 84.9
(lt.e0.melt <- melt(lt.e0.df, id.vars = "year", measure.vars = c("A", "M", "F"), variable.name = "gender", value.name = "e0"))
##     year gender   e0
## 1   1970      A 61.4
## 2   1971      A 61.8
## 3   1972      A 62.2
## 4   1973      A 62.5
## 5   1974      A 62.9
## 6   1975      A 63.2
## 7   1976      A 63.5
## 8   1977      A 63.9
## 9   1978      A 64.2
## 10  1979      A 64.5
## 11  1980      A 65.0
## 12  1981      A 65.4
## 13  1982      A 65.9
## 14  1983      A 66.3
## 15  1984      A 66.9
## 16  1985      A 67.5
## 17  1986      A 68.1
## 18  1987      A 68.7
## 19  1988      A 69.2
## 20  1989      A 69.6
## 21  1990      A 70.0
## 22  1991      A 70.4
## 23  1992      A 70.8
## 24  1993      A 72.4
## 25  1994      A 72.7
## 26  1995      A 73.1
## 27  1996      A 73.5
## 28  1997      A 73.9
## 29  1998      A 74.3
## 30  1999      A 75.5
## 31  2000      A 76.0
## 32  2001      A 76.5
## 33  2002      A 77.0
## 34  2003      A 77.4
## 35  2004      A 78.0
## 36  2005      A 78.6
## 37  2006      A 79.1
## 38  2007      A 79.5
## 39  2008      A 80.0
## 40  2009      A 80.5
## 41  2010      A 80.7
## 42  2011      A 81.1
## 43  2012      A 81.4
## 44  2013      A 81.8
## 45  1970      M 58.5
## 46  1971      M 58.8
## 47  1972      M 59.1
## 48  1973      M 59.4
## 49  1974      M 59.7
## 50  1975      M 60.0
## 51  1976      M 60.2
## 52  1977      M 60.5
## 53  1978      M 60.8
## 54  1979      M 61.0
## 55  1980      M 61.5
## 56  1981      M 62.0
## 57  1982      M 62.4
## 58  1983      M 62.9
## 59  1984      M 63.5
## 60  1985      M 64.0
## 61  1986      M 64.7
## 62  1987      M 65.3
## 63  1988      M 65.8
## 64  1989      M 66.2
## 65  1990      M 66.7
## 66  1991      M 67.0
## 67  1992      M 67.5
## 68  1993      M 68.6
## 69  1994      M 69.0
## 70  1995      M 69.3
## 71  1996      M 69.8
## 72  1997      M 70.3
## 73  1998      M 70.8
## 74  1999      M 71.7
## 75  2000      M 72.3
## 76  2001      M 72.8
## 77  2002      M 73.4
## 78  2003      M 73.8
## 79  2004      M 74.5
## 80  2005      M 75.1
## 81  2006      M 75.7
## 82  2007      M 76.1
## 83  2008      M 76.5
## 84  2009      M 77.0
## 85  2010      M 77.2
## 86  2011      M 77.6
## 87  2012      M 77.9
## 88  2013      M 78.5
## 89  1970      F 64.5
## 90  1971      F 65.0
## 91  1972      F 65.4
## 92  1973      F 65.9
## 93  1974      F 66.3
## 94  1975      F 66.7
## 95  1976      F 67.1
## 96  1977      F 67.4
## 97  1978      F 67.8
## 98  1979      F 68.1
## 99  1980      F 68.6
## 100 1981      F 69.1
## 101 1982      F 69.5
## 102 1983      F 70.0
## 103 1984      F 70.6
## 104 1985      F 71.2
## 105 1986      F 71.7
## 106 1987      F 72.2
## 107 1988      F 72.7
## 108 1989      F 73.1
## 109 1990      F 73.5
## 110 1991      F 73.8
## 111 1992      F 74.2
## 112 1993      F 76.1
## 113 1994      F 76.4
## 114 1995      F 76.7
## 115 1996      F 77.1
## 116 1997      F 77.4
## 117 1998      F 77.7
## 118 1999      F 79.2
## 119 2000      F 79.6
## 120 2001      F 80.0
## 121 2002      F 80.4
## 122 2003      F 80.8
## 123 2004      F 81.3
## 124 2005      F 81.8
## 125 2006      F 82.3
## 126 2007      F 82.7
## 127 2008      F 83.2
## 128 2009      F 83.6
## 129 2010      F 83.9
## 130 2011      F 84.3
## 131 2012      F 84.5
## 132 2013      F 84.9

(e0.1 <- ggplot(lt.e0.melt, aes(x = year, y = e0, colour = gender)) + 
  theme_bw() +
  geom_line() +
  geom_point(shape = 24, aes(fill = gender), size = 2))

(e0.2 <- e0.1 + 
  ylim(50, 90))

(e0.3 <- e0.2 + 
  xlab(x.lab.2) + 
  ylab(y.lab.2) + 
  ggtitle(main.title.2))

(e0.4 <- e0.3 + 
  labs(fill = "Gender") + 
  scale_fill_manual(values = c("black", "blue", "red"), labels = c("All", "Men", "Women")) +
  scale_colour_manual(values = c("black", "blue", "red"), labels = c("All", "Men", "Women")) +
  guides(colour = "none"))

(e0.5 <- e0.4 + 
  theme(legend.position = c(0.2, 0.8)))

Save

save.image("lt_kr_160413.rda")