The enormous progress in life expectancy, almost everywhere
in the world over the past 200 years, is primarily due to the reduction in
child mortality. It used to be common
for close to half of all children to die by age 5, and this figure was still
10% in the US as late as 1928. Here's a
graph showing child mortality and GDP per capita since 1900, with each dot
representing a country, and the size of the dot proportionate to
population. The US is the largest red
dot, China and India are the largest yellow dots, the countries with even lower
mortality rates than the US are mostly in Europe (blue dots) or on the western edge
of the Pacific (yellow dots for Japan, South Korea). Africa continues to have the highest death
rates, but it too has seen major improvements.
This graphic is not an original idea. Hans Rosling famously narrated a similar
graph showing life expectancy rather than childhood mortality. I built the graph primarily to practice some
R skills. Making a graph with the ggplot
and gganimate packages takes just a couple minutes, but combining the data from
4 separate files (with population, mortality, and GDP files each having 216 columns
for the 216 years of data) took me some time to figure out and get just right. After cleaning the data files and putting the
continent information in the income file, I merged them with the following bit
of code. (Note that "k"
increments with every loop, leading to a dataframe of 43392 rows and just 6
columns.)
# build main dataframe "df" used by ggplot
df = data.frame(country=character(), continent=character(), year=integer(),
income=integer(), population=integer(), mortality=double(),
stringsAsFactors=FALSE)
# Loop through 192 countries & 216 Years (1800-2015) + 10
duplicate years.
k = 0
for(i in 1:192){
for(j in 2:227){
k = k + 1
df[k, 1] = df_inc[i,
1]
df[k, 2] = df_inc[i,
2]
df[k, 3] = 1798 + j
df[k, 4] = df_inc[i,
j+1]
df[k, 5] = df_pop[i,
j]
df[k, 6] =
df_mort[i, j] / 1000
}}
Data source: https://www.gapminder.org/data/
Hans Rosling video: https://www.youtube.com/watch?v=BPt8ElTQMIg
No comments:
Post a Comment