{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# *Statistics coded*: Population structure and ageing\n", "\n", "Prepared by [**Isabella Marinetti**](isabella.marinetti@studio.unibo.it) ([EMOS](https://ec.europa.eu/eurostat/web/european-statistical-system/emos)).\n", "\n", "This notebook aims at reproducing the *Statistics Explained* article on [**population structure and ageing**](https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Population_structure_and_ageing#The_share_of_elderly_people_continues_to_increase).\n", "\n", "The original article looks at the impact of demographic ageing within the [European Union (EU)](https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Glossary:European_Union_(EU)), considering EFTA countries (Norway, Liechtenstein, Switzerland and Iceland) and other potential member states, alongside with the United Kingdom. \n", "Consistently low birth rates and higher life expectancy are transforming the shape of the EU-27’s age pyramid; probably the most important change will be the marked transition towards a much older population structure, a development which is already apparent in several EU-27 Member States.\n", "\n", "As a result, the proportion of people of working age in the EU-27 is shrinking while the relative number of those retired is expanding. This will, in turn, lead to an increased burden on those of working age to provide for the social expenditure required by the ageing population for a range of related services. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configuration\n", "\n", "1. Install the required packages:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#install.packages(c(\"ggplot2\", tidyr\", \"plyr\", \"repr\", \"dplyr\", \"devtools\", \"restatapi\",\"reshape2\", \"plotly\", \"forcats\", \"scales\", \"kableExtra\", \"knitr\",\"IRdisplay\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Load the packages:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning message:\n", "\"package 'ggplot2' was built under R version 3.6.3\"Warning message:\n", "\"package 'tidyr' was built under R version 3.6.3\"Warning message:\n", "\"package 'plyr' was built under R version 3.6.2\"Warning message:\n", "\"package 'repr' was built under R version 3.6.3\"Warning message:\n", "\"package 'dplyr' was built under R version 3.6.3\"\n", "Attaching package: 'dplyr'\n", "\n", "The following objects are masked from 'package:plyr':\n", "\n", " arrange, count, desc, failwith, id, mutate, rename, summarise,\n", " summarize\n", "\n", "The following objects are masked from 'package:stats':\n", "\n", " filter, lag\n", "\n", "The following objects are masked from 'package:base':\n", "\n", " intersect, setdiff, setequal, union\n", "\n", "Warning message:\n", "\"package 'devtools' was built under R version 3.6.3\"Loading required package: usethis\n", "Warning message:\n", "\"package 'usethis' was built under R version 3.6.3\"Warning message:\n", "\"package 'restatapi' was built under R version 3.6.3\"restatapi: - config file with the API version 1 loaded from GitHub (the 'current' API version number is 1).\n", " - 2 from the 8 cores are used for parallel computing.\n", " - 'auto' will be used for file download.\n", " - the Table of contents (TOC) was not pre-loaded into the deafult cache ('.restatapi_env').\n", "Warning message:\n", "\"package 'reshape2' was built under R version 3.6.2\"\n", "Attaching package: 'reshape2'\n", "\n", "The following object is masked from 'package:tidyr':\n", "\n", " smiths\n", "\n", "Warning message:\n", "\"package 'plotly' was built under R version 3.6.3\"\n", "Attaching package: 'plotly'\n", "\n", "The following objects are masked from 'package:plyr':\n", "\n", " arrange, mutate, rename, summarise\n", "\n", "The following object is masked from 'package:ggplot2':\n", "\n", " last_plot\n", "\n", "The following object is masked from 'package:stats':\n", "\n", " filter\n", "\n", "The following object is masked from 'package:graphics':\n", "\n", " layout\n", "\n", "Warning message:\n", "\"package 'forcats' was built under R version 3.6.3\"Warning message:\n", "\"package 'scales' was built under R version 3.6.3\"Warning message:\n", "\"package 'kableExtra' was built under R version 3.6.3\"\n", "Attaching package: 'kableExtra'\n", "\n", "The following object is masked from 'package:dplyr':\n", "\n", " group_rows\n", "\n", "Warning message:\n", "\"package 'knitr' was built under R version 3.6.2\"Warning message:\n", "\"package 'IRdisplay' was built under R version 3.6.3\"" ] } ], "source": [ "library(ggplot2)\n", "library(tidyr)\n", "library(plyr)\n", "library(repr)\n", "library(dplyr)\n", "library(devtools)\n", "library(restatapi)\n", "library(reshape2)\n", "library(plotly)\n", "library(forcats)\n", "library(scales)\n", "library(kableExtra)\n", "library(knitr)\n", "library(IRdisplay)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Past and future population ageing trends in the EU-27" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 1: Population pyramids, EU-27, 2004 and 2019\n", "\n", "Before loading the dataset \"*Population on 1 January by age group and sex*\" from [_Eurostat_ API](https://ec.europa.eu/eurostat/web/json-and-unicode-web-services/getting-started/rest-request) (with the id [_demo_pjangroup_](https://ec.europa.eu/eurostat/en/web/products-datasets/-/DEMO_PJANGROUP)) we need to define the subset of group ages (`ageclass`) we are interested in:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "ageclass <- c(\"Y_LT5\", \"Y5-9\", \"Y10-14\", \"Y15-19\", \"Y20-24\", \"Y25-29\", \"Y30-34\", \"Y35-39\", \"Y40-44\",\n", " \"Y45-49\", \"Y50-54\", \"Y55-59\", \"Y60-64\", \"Y65-69\", \"Y70-74\", \"Y75-79\", \"Y80-84\", \"Y_GE85\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Choose the dataset with the R function `get_eurostat_data`, filtering the data with the information we need: `geo` entity (`\"EU27_2020\"`), `time` (*2004* and *2019*), `sex` (`\"M\"`, `\"F\"`) and the group of `age` (`ageclass`):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "assign(\"dmethod\",\"curl\",envir=.restatapi_env) \n", "dataset1 <- get_eurostat_data(id=\"demo_pjangroup\", filters=list(geo=\"EU27_2020\", age=ageclass, sex=c(\"M\",\"F\")), \n", " date_filter=c(2004,2019))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Change the labels of the variable `age`, so that the graph will be more readable:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "levels(dataset1$age) <- list(\"<5\"=\"Y_LT5\", \"5-9\"= \"Y5-9\", \"10-14\"= \"Y10-14\", \n", " \"15-19\"=\"Y15-19\", \"20-24\"=\"Y20-24\", \"25-29\"=\"Y25-29\", \n", " \"30-34\"=\"Y30-34\", \"35-39\"=\"Y35-39\", \"40-44\"= \"Y40-44\",\n", " \"45-49\"= \"Y45-49\", \"50-54\"= \"Y50-54\", \"55-59\"= \"Y55-59\", \n", " \"60-64\"=\"Y60-64\", \"65-69\"=\"Y65-69\", \"70-74\"=\"Y70-74\", \n", " \"75-79\"=\"Y75-79\", \"80-84\"=\"Y80-84\", \"85+\" =\"Y_GE85\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Define the total amount of people for the two years, in this way it will be easier to compute the percentages:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 6
unitagesexgeotimevalues
<fct><fct><fct><fct><fct><dbl>
NR10-14FEU27_2020200412392609
NR10-14FEU27_2020201911322538
NR10-14MEU27_2020200413022330
NR10-14MEU27_2020201911947145
NR15-19FEU27_2020200413126800
NR15-19FEU27_2020201911227333
\n" ], "text/latex": [ "A data.table: 6 × 6\n", "\\begin{tabular}{llllll}\n", " unit & age & sex & geo & time & values\\\\\n", " & & & & & \\\\\n", "\\hline\n", "\t NR & 10-14 & F & EU27\\_2020 & 2004 & 12392609\\\\\n", "\t NR & 10-14 & F & EU27\\_2020 & 2019 & 11322538\\\\\n", "\t NR & 10-14 & M & EU27\\_2020 & 2004 & 13022330\\\\\n", "\t NR & 10-14 & M & EU27\\_2020 & 2019 & 11947145\\\\\n", "\t NR & 15-19 & F & EU27\\_2020 & 2004 & 13126800\\\\\n", "\t NR & 15-19 & F & EU27\\_2020 & 2019 & 11227333\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 6\n", "\n", "| unit <fct> | age <fct> | sex <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|---|---|\n", "| NR | 10-14 | F | EU27_2020 | 2004 | 12392609 |\n", "| NR | 10-14 | F | EU27_2020 | 2019 | 11322538 |\n", "| NR | 10-14 | M | EU27_2020 | 2004 | 13022330 |\n", "| NR | 10-14 | M | EU27_2020 | 2019 | 11947145 |\n", "| NR | 15-19 | F | EU27_2020 | 2004 | 13126800 |\n", "| NR | 15-19 | F | EU27_2020 | 2019 | 11227333 |\n", "\n" ], "text/plain": [ " unit age sex geo time values \n", "1 NR 10-14 F EU27_2020 2004 12392609\n", "2 NR 10-14 F EU27_2020 2019 11322538\n", "3 NR 10-14 M EU27_2020 2004 13022330\n", "4 NR 10-14 M EU27_2020 2019 11947145\n", "5 NR 15-19 F EU27_2020 2004 13126800\n", "6 NR 15-19 F EU27_2020 2019 11227333" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tot2019 <- sum(dataset1[time==\"2019\"]$values)\n", "tot2004 <- sum(dataset1[time==\"2004\"]$values)\n", "head(dataset1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use of the *options* function to control the size of the graphs (in this case: `width=5` and `height=5`):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "options(repr.plot.width=5, repr.plot.height=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use of the function `ggplot` to create the pyramid of age graph:\n", "- create the space with `aes` (the variable `age` on the x axis and `values` on the y axis, filling the bars with the two categories of `sex`: *male* and *female*),\n", "- add the barplots with respect of `sex` and `time`: define a subspace to compute percentages, specify a minus (`-`) before the values of males, in this way the two barplots will be mirrored, add a colour (*orange* for females and *blue* for males) and the fill term to distinguish the reference year (solid colour for *2019*, bordered colour for *2004*),\n", "- set the `coord_flip` function, so that the cartesian coordinates will be shown in a vertical way,\n", "- add the `title`, `subtitle` and `caption`,\n", "- specify the *theme*, in this case we choose the white background `theme_bw` with grid lines." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot1 <- ggplot(dataset1, aes(x=age , y=values, fill= sex,)) + \n", "\n", " geom_bar(data=subset(dataset1, sex == \"F\" & time==\"2019\" ),aes(y=(values)/tot2019*100), fill=\"orange\", stat = \"identity\") + \n", " geom_bar(data=subset(dataset1,sex == \"M\" &time==\"2019\"),aes(y=(-values)/tot2019*100), fill=\"steelblue\", stat = \"identity\") +\n", " geom_bar(data=subset(dataset1, sex == \"F\" & time==\"2004\" ),aes(y=(values)/tot2004*100),fill=\"transparent\", colour=\"#FFCC00\", size=1, stat = \"identity\") + \n", " geom_bar(data=subset(dataset1,sex == \"M\" &time==\"2004\"),aes(y=(-values)/tot2004*100), fill=\"transparent\", colour=\"lightblue\", size=1, stat = \"identity\") +\n", " scale_x_discrete(limits= c(\"<5\",\"5-9\", \"10-14\", \"15-19\",\"20-24\",\"25-29\",\"30-34\", \"35-39\", \"40-44\",\"45-49\",\"50-54\",\"55-59\",\"60-64\",\"65-69\",\"70-74\", \"75-79\",\"80-84\", \"85+\")) +\n", " coord_flip()+\n", " labs(title = \"Population pyramids, EU-27, 2004 and 2019\",\n", " subtitle = \"(% of the total population)\",\n", " caption = \"Solid colour: 2019 Bordered: 2004\") +\n", " theme_bw()\n", " \n", "print(plot1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 2: Population pyramids, EU-27, 2019 and 2100\n", "\n", "Load the dataset with the `R` function `get_eurostat_data`, filtering the data with the information we need: \n", "- first of all selecting the dataset *Population on 1st January by age, sex and type of projection* ([_proj_19np_](https://ec.europa.eu/eurostat/web/products-datasets/-/proj_19np)),\n", "- `geo` entity: `\"EU-27_2020\"`,\n", "- `time`: *2019* and *2100*,\n", "- `sex`: `\"M\"`, `\"F\"`,\n", "- finally, the *baseline* (`\"BSL\"`) projections." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "assign(\"dmethod\",\"curl\",envir=.restatapi_env) \n", "dataset2 <- get_eurostat_data(id=\"proj_19np\", \n", " filters=list(geo=\"EU27_2020\", sex=c(\"M\",\"F\"), projection=\"BSL\"))[time %in% c(2019,2100)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Define a value for the *total* amount of population in 2019 and 2100 to compute percentages.\n", "- Delete the *total* amount of population from the dataset, so that it will not be visualized in the graph." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "totproj2019 <- sum(dataset2[dataset2$time==\"2019\"& dataset2$age==\"TOTAL\"]$values)\n", "totproj2100 <- sum(dataset2[dataset2$time==\"2100\" & dataset2$age==\"TOTAL\"]$values)\n", "dataset2 <- filter(dataset2, dataset2$age!=\"TOTAL\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the dataset `age` is not divided into five year classes. The main problem is that the variable `age` is a factor with levels (\"Y1\", \"Y2\", ...), so we firstly need to take only the part of the string concerning the number of years (1, 2, 3, ...) through the function `substr`.\n", "\n", "Before applying the function, we need to rename the first and the last levels of the variable, so that they will have the same format for each year:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "levels(dataset2$age)[levels(dataset2$age)==\"Y_GE100\"] <- \"Y100\"\n", "levels(dataset2$age)[levels(dataset2$age)==\"Y_LT1\"] <- \"Y0\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we need to transform the variable `age` from a factor to a character, in this way we can apply the function `substr`:\n", " - the function takes as input the variable of interest and then the specification of the *start* (the number of the first character to be returned) and the *stop*, in this case they will be *2* and *4*, because we want to extrapolate the number from 0 to 100, eliminating the \"Y\" part" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 7
unitagesexprojectiongeotimevalues
<fct><chr><fct><fct><fct><fct><dbl>
PER1 FBSLEU27_202020192101911
PER1 FBSLEU27_202021001838642
PER1 MBSLEU27_202020192211096
PER1 MBSLEU27_202021001944673
PER10FBSLEU27_202020192324280
PER10FBSLEU27_202021001911172
\n" ], "text/latex": [ "A data.table: 6 × 7\n", "\\begin{tabular}{lllllll}\n", " unit & age & sex & projection & geo & time & values\\\\\n", " & & & & & & \\\\\n", "\\hline\n", "\t PER & 1 & F & BSL & EU27\\_2020 & 2019 & 2101911\\\\\n", "\t PER & 1 & F & BSL & EU27\\_2020 & 2100 & 1838642\\\\\n", "\t PER & 1 & M & BSL & EU27\\_2020 & 2019 & 2211096\\\\\n", "\t PER & 1 & M & BSL & EU27\\_2020 & 2100 & 1944673\\\\\n", "\t PER & 10 & F & BSL & EU27\\_2020 & 2019 & 2324280\\\\\n", "\t PER & 10 & F & BSL & EU27\\_2020 & 2100 & 1911172\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 7\n", "\n", "| unit <fct> | age <chr> | sex <fct> | projection <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|---|---|---|\n", "| PER | 1 | F | BSL | EU27_2020 | 2019 | 2101911 |\n", "| PER | 1 | F | BSL | EU27_2020 | 2100 | 1838642 |\n", "| PER | 1 | M | BSL | EU27_2020 | 2019 | 2211096 |\n", "| PER | 1 | M | BSL | EU27_2020 | 2100 | 1944673 |\n", "| PER | 10 | F | BSL | EU27_2020 | 2019 | 2324280 |\n", "| PER | 10 | F | BSL | EU27_2020 | 2100 | 1911172 |\n", "\n" ], "text/plain": [ " unit age sex projection geo time values \n", "1 PER 1 F BSL EU27_2020 2019 2101911\n", "2 PER 1 F BSL EU27_2020 2100 1838642\n", "3 PER 1 M BSL EU27_2020 2019 2211096\n", "4 PER 1 M BSL EU27_2020 2100 1944673\n", "5 PER 10 F BSL EU27_2020 2019 2324280\n", "6 PER 10 F BSL EU27_2020 2100 1911172" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset2$age <- as.character(dataset2$age)\n", "dataset2$age <- substr(dataset2$age, 2,4)\n", "head(dataset2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Trasform the variable `age` into a numeric one" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "dataset2$age <- as.numeric(dataset2$age)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Order the dataset with respect to the numeric variable `age`" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "dataset2 <- dataset2[order(dataset2$age), ]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only after these steps we can divide the vector of numbers into five years classes:\n", " \n", " - using the function `cut` we can divide the variable `age` into a specified number of `breaks`, defining also their `labels` and considering the right interval open:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": true }, "outputs": [], "source": [ "dataset2$age <- cut(dataset2$age, breaks=c(0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,Inf), \n", " labels=c(\"<5\",\"05-9\",\"10-14\",\"15-19\",\"20-24\",\"25-29\",\"30-34\",\"35-39\",\"40-44\",\"45-49\",\n", " \"50-54\",\"55-59\",\"60-64\",\"65-69\",\"70-74\",\"75-79\",\"80-84\",\"85+\"), right=FALSE)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " - group the values for each age class with the function `group_by` in the new variable `value_tot`:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "scrolled": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "`summarise()` regrouping output by 'age', 'sex' (override with `.groups` argument)\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A grouped_df: 6 × 4
agesextimevalue_tot
<fct><fct><fct><dbl>
<5 F201910571075
<5 F2100 9235374
<5 M201911126001
<5 M2100 9749771
05-9F201911118011
05-9F2100 9440604
\n" ], "text/latex": [ "A grouped\\_df: 6 × 4\n", "\\begin{tabular}{llll}\n", " age & sex & time & value\\_tot\\\\\n", " & & & \\\\\n", "\\hline\n", "\t <5 & F & 2019 & 10571075\\\\\n", "\t <5 & F & 2100 & 9235374\\\\\n", "\t <5 & M & 2019 & 11126001\\\\\n", "\t <5 & M & 2100 & 9749771\\\\\n", "\t 05-9 & F & 2019 & 11118011\\\\\n", "\t 05-9 & F & 2100 & 9440604\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A grouped_df: 6 × 4\n", "\n", "| age <fct> | sex <fct> | time <fct> | value_tot <dbl> |\n", "|---|---|---|---|\n", "| <5 | F | 2019 | 10571075 |\n", "| <5 | F | 2100 | 9235374 |\n", "| <5 | M | 2019 | 11126001 |\n", "| <5 | M | 2100 | 9749771 |\n", "| 05-9 | F | 2019 | 11118011 |\n", "| 05-9 | F | 2100 | 9440604 |\n", "\n" ], "text/plain": [ " age sex time value_tot\n", "1 <5 F 2019 10571075 \n", "2 <5 F 2100 9235374 \n", "3 <5 M 2019 11126001 \n", "4 <5 M 2100 9749771 \n", "5 05-9 F 2019 11118011 \n", "6 05-9 F 2100 9440604 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data <- dataset2 %>%\n", " group_by(age,sex,time) %>%\n", " summarise(value_tot=sum(values))\n", "head(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the pyramid of age using the function `ggplot`:\n", " - create the space with `aes` (the variable `age` on the x axis and `values_tot` on the y axis, filling the bars with the two categories of `sex`: *male* and *female*),\n", " - add the barplots with respect of `sex` and `time`: define a subspace to compute percentages, specify a minus (`-`) before the values of males, in this way yhe two barplots will be mirrored, add a colour (*orange* for females and *blue* for males) and the fill term to distinguish the reference year (solid colour for *2100*, bordered colour for *2019*),\n", " - add the `title`, `subtitle` and `caption`,\n", " - set the `coord_flip` function, so that the cartesian coordinates will be shown in a vertical way,\n", " - specify the *theme*, in this case we choose the white background `theme_bw` with grid lines." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\nERALREAsEOH/CVEO9Ec+HeMAAAAASUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot2 <- ggplot(data, aes(x=age , y=value_tot, fill= sex)) + \n", "\n", " geom_bar(data=subset(data, sex == \"F\" & time==\"2100\" ),aes(y=(value_tot)/totproj2100*100), fill=\"orange\", stat = \"identity\") + \n", " geom_bar(data=subset(data,sex == \"M\" &time==\"2100\"),aes(y=(-value_tot)/totproj2100*100), fill=\"steelblue\", stat = \"identity\") +\n", " geom_bar(data=subset(data, sex == \"F\" & time==\"2019\" ),aes(y=(value_tot)/totproj2019*100),fill=\"transparent\", colour=\"#FFCC00\", size=1, stat = \"identity\") + \n", " geom_bar(data=subset(data,sex == \"M\" &time==\"2019\"),aes(y=(-value_tot)/totproj2019*100), fill=\"transparent\", colour=\"lightblue\", size=1, stat = \"identity\") +\n", " ylab(\"\")+\n", " labs(title = \"Population pyramids, EU-27, 2019 and 2100\",\n", " subtitle = \"(% of the total population)\",\n", " caption = \"Solid colour: 2100 Bordered: 2019\")+\n", " coord_flip()+\n", " theme_bw()\n", "\n", "print(plot2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 3: Population structure by major age groups, EU-27, 2019-2100\n", "\n", "Load the dataset with the R function `get_eurostat_data`, filtering the data with the information we need: \n", " - first of all selecting the dataset \"*Demographic balances and indicators by type of projection*\" ([_proj_19ndbi_](https://appsso.eurostat.ec.europa.eu/nui/show.do?dataset=proj_19ndbi&lang=fr)),\n", " - geopolitical entity (`\"EU-27_2020\"`),\n", " - time (from *2019* to *2100*, by ten years),\n", " - baseline (`\"BSL\"`) projections,\n", " - and the demographic indicator (`indic_de`) with the indicators relevant for the analysis: proportion of population aged 0-14 (`\"PC_Y0_14\"`), proportion of population aged 15-64 (`\"PC_Y15_64\"`), proportion of population aged 65 years and more (`\"PC_Y65_MAX\"`), proportion of population aged 80 years and more (`\"PC_Y80_MAX\"`)." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "scrolled": false }, "outputs": [], "source": [ "assign(\"dmethod\",\"curl\",envir=.restatapi_env) \n", "dataset3 <- get_eurostat_data(id=\"proj_19ndbi\", filters=list(geo=\"EU27_2020\", projection=\"BSL\", indic_de=c(\"PC_Y0_14\", \"PC_Y15_64\",\"PC_Y65_MAX\",\"PC_Y80_MAX\")))[time %in% c(2019, 2030,2040,2050,2060,2070,2080,2090,2100)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Problem: in the variable `indic_de` the level \"65+\" considers also the values for the level \"85+\", there is an overlapping of percentages, we need to create a new level \"65-79\". \n", "To overcome this problem we need to define a vector (`years`) to be used in the for loop that will subtract the value of \"80+\" (`\"PC_Y80_MAX\"`) from the category \"65+\" (`\"PC_Y65_MAX\"`) when the years coincide:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [], "source": [ "years <-c(\"2019\",\"2030\",\"2040\",\"2050\",\"2060\",\"2070\",\"2080\",\"2090\",\"2100\")\n", "\n", "for(i in 1:length(years)){\n", " year <-years[i]\n", " dataset3[dataset3$time==year & dataset3$indic_de==\"PC_Y65_MAX\", 5]<-dataset3[dataset3$time==year & dataset3$indic_de==\"PC_Y65_MAX\", 5] \n", " - dataset3[dataset3$time==year & dataset3$indic_de==\"PC_Y80_MAX\", 5]\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rename the levels of the variable `indic_de` to provide a better visualization of the graph:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 5
projectionindic_degeotimevalues
<fct><fct><fct><fct><dbl>
BSL0-14EU27_2020201915.2
BSL0-14EU27_2020203014.0
BSL0-14EU27_2020204013.6
BSL0-14EU27_2020205013.7
BSL0-14EU27_2020206013.6
BSL0-14EU27_2020207013.6
\n" ], "text/latex": [ "A data.table: 6 × 5\n", "\\begin{tabular}{lllll}\n", " projection & indic\\_de & geo & time & values\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t BSL & 0-14 & EU27\\_2020 & 2019 & 15.2\\\\\n", "\t BSL & 0-14 & EU27\\_2020 & 2030 & 14.0\\\\\n", "\t BSL & 0-14 & EU27\\_2020 & 2040 & 13.6\\\\\n", "\t BSL & 0-14 & EU27\\_2020 & 2050 & 13.7\\\\\n", "\t BSL & 0-14 & EU27\\_2020 & 2060 & 13.6\\\\\n", "\t BSL & 0-14 & EU27\\_2020 & 2070 & 13.6\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 5\n", "\n", "| projection <fct> | indic_de <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|---|\n", "| BSL | 0-14 | EU27_2020 | 2019 | 15.2 |\n", "| BSL | 0-14 | EU27_2020 | 2030 | 14.0 |\n", "| BSL | 0-14 | EU27_2020 | 2040 | 13.6 |\n", "| BSL | 0-14 | EU27_2020 | 2050 | 13.7 |\n", "| BSL | 0-14 | EU27_2020 | 2060 | 13.6 |\n", "| BSL | 0-14 | EU27_2020 | 2070 | 13.6 |\n", "\n" ], "text/plain": [ " projection indic_de geo time values\n", "1 BSL 0-14 EU27_2020 2019 15.2 \n", "2 BSL 0-14 EU27_2020 2030 14.0 \n", "3 BSL 0-14 EU27_2020 2040 13.6 \n", "4 BSL 0-14 EU27_2020 2050 13.7 \n", "5 BSL 0-14 EU27_2020 2060 13.6 \n", "6 BSL 0-14 EU27_2020 2070 13.6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "levels(dataset3$indic_de) <- list(\"0-14\"=\"PC_Y0_14\", \"15-64\"= \"PC_Y15_64\", \"65-79\"= \"PC_Y65_MAX\", \"80+\"=\"PC_Y80_MAX\")\n", "head(dataset3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Modify the visualization options:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "options(repr.plot.width=7, repr.plot.height=6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the stack barplot using the function `ggplot`:\n", " - create the space with *aes* (the variable `time` on the x axis and `values` on the y axis, filling the bars with the categories of `indic_de`: *0-14*, *15-64*, *65-79*, *80+*), \n", " - add the barplots: define a space where the stacked bars have the youngest years (*0-14*) at the bottom and the eldest (*80+*) at the top, \n", " - define the function `scale_fill_manual` to fill the stacked bar with specific colours with respect to the variable `indic_de`,\n", " - add the title and subtitle, \n", " - specify the *theme*, in this case we choose the white background with grid lines." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\nYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot3 <- ggplot(dataset3, aes(x=time,y=values, fill=indic_de))+\n", " geom_bar(aes(x=time, y=values, fill = fct_rev(indic_de)),position=position_fill(reverse=F), stat=\"identity\")+\n", " scale_fill_manual(name=\"\",values=c( \"cornflowerblue\",\"steelblue\", \"#FFCC00\",\"orange\"))+ \n", " labs(title = \"Population structure by major age groups, EU-27, 2019-2100\",\n", " subtitle = \"(% of the total population)\")+\n", " theme_bw()\n", "\n", "print(plot3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 4: Projected total-age and old-age dependency ratio, EU-27, 2019-2100\n", "\n", "We use the same dataset as before (*Demographic balances and indicators by type of projection*, _proj_19ndbi_), but this time we need to consider different demographic indicators (`indic_de`): \n", "- `\"DEPRATIO1\"`, the total-age dependency ratio (population aged 0-14 and population 65 and more over the population 15-64 years),\n", "- `\"OLDDEP1\"`, the old-age dependency ratio (population 65 and over to population 15-64 years).\n", "\n", "Moreover, we take the time axis from *2019* to *2100* by five years." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [], "source": [ "assign(\"dmethod\",\"curl\",envir=.restatapi_env) \n", "dataset4 <- get_eurostat_data(id=\"proj_19ndbi\", filters=list(geo=\"EU27_2020\", projection=\"BSL\", indic_de=c(\"OLDDEP1\",\"DEPRATIO1\")))[time %in% c(2019,2020, 2025, 2030,2035,2040,2045,2050,2055,2060,2065,2070,2075,2080,2085,2090,2095,2100)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before plotting the graph we need to change the years from *characters* to *numeric* values (this is important for graphical visualization)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 5
projectionindic_degeotimevalues
<fct><fct><fct><dbl><dbl>
BSLDEPRATIO1EU27_2020201954.9
BSLDEPRATIO1EU27_2020202055.5
BSLDEPRATIO1EU27_2020202558.3
BSLDEPRATIO1EU27_2020203061.8
BSLDEPRATIO1EU27_2020203565.8
BSLDEPRATIO1EU27_2020204069.8
\n" ], "text/latex": [ "A data.table: 6 × 5\n", "\\begin{tabular}{lllll}\n", " projection & indic\\_de & geo & time & values\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2019 & 54.9\\\\\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2020 & 55.5\\\\\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2025 & 58.3\\\\\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2030 & 61.8\\\\\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2035 & 65.8\\\\\n", "\t BSL & DEPRATIO1 & EU27\\_2020 & 2040 & 69.8\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 5\n", "\n", "| projection <fct> | indic_de <fct> | geo <fct> | time <dbl> | values <dbl> |\n", "|---|---|---|---|---|\n", "| BSL | DEPRATIO1 | EU27_2020 | 2019 | 54.9 |\n", "| BSL | DEPRATIO1 | EU27_2020 | 2020 | 55.5 |\n", "| BSL | DEPRATIO1 | EU27_2020 | 2025 | 58.3 |\n", "| BSL | DEPRATIO1 | EU27_2020 | 2030 | 61.8 |\n", "| BSL | DEPRATIO1 | EU27_2020 | 2035 | 65.8 |\n", "| BSL | DEPRATIO1 | EU27_2020 | 2040 | 69.8 |\n", "\n" ], "text/plain": [ " projection indic_de geo time values\n", "1 BSL DEPRATIO1 EU27_2020 2019 54.9 \n", "2 BSL DEPRATIO1 EU27_2020 2020 55.5 \n", "3 BSL DEPRATIO1 EU27_2020 2025 58.3 \n", "4 BSL DEPRATIO1 EU27_2020 2030 61.8 \n", "5 BSL DEPRATIO1 EU27_2020 2035 65.8 \n", "6 BSL DEPRATIO1 EU27_2020 2040 69.8 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset4$time <- as.numeric(as.character(dataset4$time))\n", "head(dataset4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we modify the visualization options:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "options(repr.plot.width=10, repr.plot.height=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the line graph using the function `ggplot`:\n", "- create the space with `aes` (the variable `time` on the x axis and `values` on the y axis, grouping the values by the variable `indic_de`, \n", "- add the lines with a thickness (`size`) equal to 1,\n", "- define the function `scale_colour_manual` to colour the lines with respect to the categories of the variable `indic_de`,\n", "- add the title,\n", "- add the `scale_y_continuous` and `scale_x_continuous` to specify the length of the y and x axis,\n", "- add a title for the y axis,\n", "- indicate the position of the legend, \n", "- specify the *theme*, in this case we choose the white background with grid lines." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAJYCAMAAABFOO8oAAAAPFBMVEUAAAAzMzNGgrRNTU1o\naGh8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD/pQD///8fEm2JAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2diXajPLNFuY0zdJJO/nx+/3e9noBiEhJG\ncCTts1ZnwGVqG8NuIBhVZ0IISSTV0QCEEOIbhEUISSYIixCSTBAWISSZICxCSDJBWISQZIKw\nCCHJBGERQpIJwiKEJBOERQhJJuuFVT3y8jFfMfvk37flJ03UjCc5eqzOzDzt5KfaPvHk7V7u\nfVEuzK8y6VX3n/fxUlWnj/4ThrPqas7nf5efX77ah/42xR+nqnr7mX2aLbWzGMyO5JznhXVZ\nWWYrHE9efmSiZjwJYT01p02E9dKtBm11PZiTqTn/u//89/HQVzOz9/v0fzNPs6V2FoPZkazz\n/Lbzr65m97EWn+x6BGFt+tQ1cxoUTb8379XLz2016JTxVX33Z9SrOVWf5/NnM4uPZnfsq6ov\nrvp5qWeeZkp7s+jPjuSdDbadf7O7WB5PdjyCsDZ96po5eQmrvv/83e1VfY/+C7M1/+76eb96\n5vz9Up0eM3u571v9u02fmLUptbPozY7kni22netPVfV7ql4vv3y/1VX99t1V2DMMX5ef334f\nRw4TD9Z/u9m2Nd0c20nvlzX35V+fojf5PrePCYRh5aXiva5OX1MIUy9nXBLQ1j65e/Ty+0c9\ncUZmFm2+5Lp0f6vTfU7tD92706I+FuXjdZhX2YuXsMbT6tP40a7m/b779V293Sa8N09snn8D\nnZi1KbWz6M2O5J7thPV6XaGuZxlu+WoqPu+/v18L35vTG415xg++jYRl5thMqgc9HjGTz3/v\nMx51GVVeNuD25yHCxMsZlwS0tU82j1bV366yN30azVlSX3+4C+yzPUhr3p0OtScs+ypn3uOJ\nt3xU3Gjq7/CAsF/zcn/uXadXSw6FNTz/9Zi1KbWz6M2O5J4NhPV1PSS8bDmXPafL/3PV38v/\n8Zdt5+de8X37D/2yN/9127P/Ov++XLecx75T78HrPv1XPdwoRnO8bhB/b19fzr0tx062c7Nd\nxpXV9czJ7+v15zHCxMsZlgS0nXv0gnCf/j2aPoU2W9Is3Z/HtvtSNX9xe7w74wV3+9p7ldPv\n8fDXCWF9NXr8mdhFsjWtmLr/mm7fTnfPfY3n/WXM23uq2UmMcnKAyOV5YV22otuWczsmen/s\nULw1VnqvrlvK5f+/1+vEj/Pjv8LHkZ158P1+3uO3HmwUozle1+zf9nGzmtrJj7l9DhHGlff9\nit974RBh4uUMSwLa2ifbRxtR1O/D6ZNoMyVm6b4+prb7HI93Z7zgHtTmVfZSdenekf5P3XJo\ndoxe53ewbjVzwvq4nWHv/WcwnDXCKj7PCKvJ/djkNvH02PZ+GiudzBr/2F7O58484wdfq2HN\nYI63fH/9fRkKy04+NRv1AGFcaTaBMcLEyxmWBLS1T7aPNn+0eD0Npk+jLZRceW6S7I4IzVIa\nvO4HtXmVvQQI67XZPfud/xvMvWZOWI9rGN5H837t9vwQVul5Wlj1a3P213zrVqVqvHV1dVMP\nvlTDmsEcL/mo243o8qX9uT/ZPGkkrHGlC6H3ctqS8LZ2/r2X/vDEaXp5DdEWSq657eS8jLbz\nMWpf+qNtfjCh/1J6L+69PfL9Oz4V1q+ZFdYV7/TZe0v7s0ZY5BlhTfw2u4UPnjH8H3tqvZsV\n1kdVvbx//gyFNZg8eJLNROX0qj/7cla1nXu0EdbL9PIaoi2UXHPdxbJnoRvRj1C3EpaRSj16\n3ed+TbN32u6J9btc2Wdm3ZbaWYxmR3LOxsIaHUPV5oRGPTwktA8+ZvA7tMXEIeGp6q5oMBR2\nsj02q0fnVCZmYDZ5gzBqPi4JaGuf3Hvpj7Nc10PCiUUy7DtTYpbube/KHBF2787wdT+o5w8J\ne7++NJ2/+3b4fanby9PnTrl3NaPrEPpdPnpn0uysu1Iuayg2Gwvr/bHatGep3+4Tbmv42+Nc\ncN2U2wcfp2o/hsIazbH5+jUUlp38OEn9MUQYV5pNfowwaj4uCWhrn2wfrR6au55070+fRJsp\nMUv3ivNujgj7+7/2dT+ozavsZSCsprA9TX/PT113rT6mP/dgah5XenaHjo8uD+O+2c/m9Gbd\nldpZjGZHcs7Gwrocbrzf/0L+uGjm+3ZO/vv2l8Svqv5uL2u4rof2wY/b3/Y/e6d8fsZzvE46\nXbeJx1+Ters63eT7ZQD3udku40qzLY8RRi9nXBLQ1j7ZPlpdL0i4zuJ3OH0SbabELN0rVW13\nl9o9LPu62xPgvVfpeI+vO3jXzyb/vFd2b+63thdOTf+NsFfz+CzN8E9/79drL34/7M5bf9YG\n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", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot4 <- ggplot(data=dataset4, aes(x=time, y=values, group=factor(indic_de), color=factor(indic_de))) + \n", " geom_line(size=1) +\n", " scale_color_manual(labels = c(\"total-age dependency ratio\",\"old-age dependency ratio\"), values = c( \"steelblue\",\"orange\"), name = \" \") +\n", " ggtitle(\"Projected total-age and old-age dependency ratio, EU-27, 2019-2100\") +\n", " scale_y_continuous(limits = c(0, 85), breaks = seq(0, 85, by = 5)) +\n", " scale_x_continuous(limits = c(2015,2100), breaks =seq(2015, 2100, by = 5)) +\n", " ylab(\"%\") +\n", " theme(legend.position=\"bottom\")+\n", " theme_bw() \n", "\n", "print(plot4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The share of elderly people continues to increase" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before loading the dataset we need to set the vector `countries` that we will use as filter while selecting data" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "countries <- as.factor(c(\"EU27_2020\",\"BE\", \"BG\",\"CZ\",\"DK\", \"DE\", \"EE\",\"IE\",\"EL\",\"ES\",\"FR\",\n", " \"HR\", \"IT\",\"CY\",\"LV\",\"LT\",\"LU\",\"HU\",\"MT\",\"NL\",\"AT\",\"PL\",\"PT\",\"RO\",\n", " \"SI\",\"SK\",\"FI\",\"SE\",\"UK\",\"IS\",\"LI\",\"NO\",\"CH\",\"ME\", \"MK\", \"AL\", \"RS\",\"TR\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We load the dataset \"*Population: Structure indicators*\" ([_demo_pjanind_](https://appsso.eurostat.ec.europa.eu/nui/show.do?dataset=demo_pjanind&lang=en)):\n", " - filter the data using the vector `countries`, \n", " - select from the variable `indic_de` the category: \n", " + `\"PC_Y65_MAX\"` (population 65+ years old) for *Table 1* and *Figure 5*,\n", " + `\"PC_Y0_14\"` (population 0-14 years old), `\"PC_Y15_24\"` (population 15-24 years old), `\"PC_Y25_49\"` (population 25-49 years old), `\"PC_Y50_64\"` (population 50-64 years old) for *Table 1*,\n", " + `\"MEDAGEPOPv` (median age) for *Figure 6*,\n", " + `\"YOUNGDEP1\"` (young age dependency ratio), `\"OLDDEP1\"` (old age dependency ratio), `\"DEPRATIO1\"` (total age dependency ratio), `\"PC_Y80_MAX\"` (proportion of population 80 years old or more) for *Table 2*,\n", " - select the years *2009* and *2019*." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": false }, "outputs": [], "source": [ "assign(\"dmethod\",\"curl\",envir=.restatapi_env) \n", "dataset <- get_eurostat_data(id=\"demo_pjanind\", filters=list(geo=countries, indic_de=c(\"PC_Y0_14\",\"PC_Y15_24\",\"PC_Y25_49\",\"PC_Y50_64\",\"PC_Y65_MAX\" ,\"MEDAGEPOP\", \"YOUNGDEP1\",\"OLDDEP1\",\"DEPRATIO1\",\"PC_Y80_MAX\")), date_filter=c(2009,2019))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Table 1: Population age structure by major age groups, 2009 and 2019" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a vector `x` to filter the dataset with the demographic indicators of interest:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "x <- c(\"PC_Y0_14\",\"PC_Y15_24\",\"PC_Y25_49\",\"PC_Y50_64\",\"PC_Y65_MAX\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a new dataset from a subset of the one loaded from the _Eurostat_ API with respect to the vectors of demographic indicators of interest:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "dataset5 <- subset(dataset, dataset$indic_de %in% x)" ] }, { "cell_type": "markdown", "metadata": { "scrolled": false }, "source": [ "- Since we are interested in three major age groups (0-14, 15-64 and 65+), we need to sum the values of the three categories \"15-24\" (`\"PC_Y15_24\"`), \"25-49\" (`\"PC_Y25_49\"`) and \"50-64\" (`\"PC_Y50_64\"`) with a `for` loop:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "times <- c(2009,2019)\n", "\n", "for(i in 1:length(times)){\n", " year <- times[i]\n", " dataset5[dataset5$time==year & dataset5$indic_de==\"PC_Y15_24\", 4] <- dataset5[dataset5$time==year & dataset5$indic_de==\"PC_Y15_24\", 4]+\n", " dataset5[dataset5$time==year & dataset5$indic_de==\"PC_Y25_49\", 4]+\n", " dataset5[dataset5$time==year & dataset5$indic_de==\"PC_Y50_64\", 4]\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Only after that we can rename the level `\"PC_Y15_24\"` into `\"PC_Y15_64\"`:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "levels(dataset5$indic_de)[levels(dataset5$indic_de)==\"PC_Y15_24\"] <- \"PC_Y15_64\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- And then delete the values for the categories `\"PC_Y25_49\"` and `\"PC_Y50_64\"`, now included in the cateogory 15-64:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 4
indic_degeotimevalues
<fct><fct><fct><dbl>
PC_Y0_14AL200923.3
PC_Y0_14AL201917.2
PC_Y0_14AT200915.1
PC_Y0_14AT201914.4
PC_Y0_14BE200916.9
PC_Y0_14BE201916.9
\n" ], "text/latex": [ "A data.table: 6 × 4\n", "\\begin{tabular}{llll}\n", " indic\\_de & geo & time & values\\\\\n", " & & & \\\\\n", "\\hline\n", "\t PC\\_Y0\\_14 & AL & 2009 & 23.3\\\\\n", "\t PC\\_Y0\\_14 & AL & 2019 & 17.2\\\\\n", "\t PC\\_Y0\\_14 & AT & 2009 & 15.1\\\\\n", "\t PC\\_Y0\\_14 & AT & 2019 & 14.4\\\\\n", "\t PC\\_Y0\\_14 & BE & 2009 & 16.9\\\\\n", "\t PC\\_Y0\\_14 & BE & 2019 & 16.9\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 4\n", "\n", "| indic_de <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|\n", "| PC_Y0_14 | AL | 2009 | 23.3 |\n", "| PC_Y0_14 | AL | 2019 | 17.2 |\n", "| PC_Y0_14 | AT | 2009 | 15.1 |\n", "| PC_Y0_14 | AT | 2019 | 14.4 |\n", "| PC_Y0_14 | BE | 2009 | 16.9 |\n", "| PC_Y0_14 | BE | 2019 | 16.9 |\n", "\n" ], "text/plain": [ " indic_de geo time values\n", "1 PC_Y0_14 AL 2009 23.3 \n", "2 PC_Y0_14 AL 2019 17.2 \n", "3 PC_Y0_14 AT 2009 15.1 \n", "4 PC_Y0_14 AT 2019 14.4 \n", "5 PC_Y0_14 BE 2009 16.9 \n", "6 PC_Y0_14 BE 2019 16.9 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset5 <- dataset5[dataset5$indic_de!=\"PC_Y25_49\" & dataset5$indic_de!=\"PC_Y50_64\",]\n", "head(dataset5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Create vectors for each year (2009 or 2019) of the category (\"0-14\": `\"PC_Y0_14\"`, \"15-64\": `\"PC_Y15_64\"`, \"65+\": `\"PC_Y65_MAX\"`),\n", "- Order them with respect to the vector `countries`, previously defined." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "age0_14_2009 <- dataset5[dataset5$indic_de==\"PC_Y0_14\" & dataset5$time==\"2009\", -c(1,3)]\n", "age0_14_2019 <- dataset5[dataset5$indic_de==\"PC_Y0_14\" & dataset5$time==\"2019\", -c(1,3)]\n", "\n", "age0_14_2009 <- age0_14_2009[order(factor(age0_14_2009$geo, levels=unique(countries))),-1]\n", "age0_14_2019 <- age0_14_2019[order(factor(age0_14_2019$geo, levels=unique(countries))),-1]" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "age15_64_2009 <- dataset5[dataset5$indic_de==\"PC_Y15_64\" & dataset5$time==\"2009\", -c(1,3)]\n", "age15_64_2019 <- dataset5[dataset5$indic_de==\"PC_Y15_64\" & dataset5$time==\"2019\", -c(1,3)]\n", "\n", "age15_64_2009 <- age15_64_2009[order(factor(age15_64_2009$geo, levels=unique(countries))),-1]\n", "age15_64_2019 <- age15_64_2019[order(factor(age15_64_2019$geo, levels=unique(countries))),-1]" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "age65_MAX_2009 <- dataset5[dataset5$indic_de==\"PC_Y65_MAX\" & dataset5$time==\"2009\", -c(1,3)]\n", "age65_MAX_2019 <- dataset5[dataset5$indic_de==\"PC_Y65_MAX\" & dataset5$time==\"2019\", -c(1,3)]\n", "\n", "age65_MAX_2009 <- age65_MAX_2009[order(factor(age65_MAX_2009$geo, levels=unique(countries))),-1]\n", "age65_MAX_2019 <- age65_MAX_2019[order(factor(age65_MAX_2019$geo, levels=unique(countries))),-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Define the vector `cntr` with the name of the countries (not just the code) to make the table more comprehensible" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "cntr <- as.factor(c(\"EU-27\", \"Belgium\", \"Bulgaria\", \"Czechia\", \"Denmark\", \"Germany\", \"Estonia\", \"Ireland\",\n", " \"Greece\", \"Spain\", \"France\", \"Croatia\", \"Italy\", \"Cyprus\", \"Latvia\", \"Lithuania\",\n", " \"Luxembourg\", \"Hungary\", \"Malta\", \"Netherlands\", \"Austria\", \"Poland\",\"Portugal\", \"Romania\",\n", " \"Slovenia\", \"Slovakia\", \"Finland\", \"Sweden\",\"United Kingdom\", \"Iceland\", \"Liechtenstein\",\n", " \"Norway\", \"Switzerland\", \"Montenegro\", \"North Macedonia\", \"Albania\", \"Serbia\", \"Turkey\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, we can merge the different vectors and create the table with the function `cbind` and rename the columns:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 7
Countries 200920192009201920092019
<fct><dbl><dbl><dbl><dbl><dbl><dbl>
EU-27 15.415.267.164.617.420.3
Belgium 16.916.966.064.217.118.9
Bulgaria13.114.468.964.318.021.3
Czechia 14.215.970.964.614.919.6
Denmark 18.316.565.863.915.919.6
Germany 13.613.666.064.820.421.5
\n" ], "text/latex": [ "A data.table: 6 × 7\n", "\\begin{tabular}{lllllll}\n", " Countries & 2009 & 2019 & 2009 & 2019 & 2009 & 2019\\\\\n", " & & & & & & \\\\\n", "\\hline\n", "\t EU-27 & 15.4 & 15.2 & 67.1 & 64.6 & 17.4 & 20.3\\\\\n", "\t Belgium & 16.9 & 16.9 & 66.0 & 64.2 & 17.1 & 18.9\\\\\n", "\t Bulgaria & 13.1 & 14.4 & 68.9 & 64.3 & 18.0 & 21.3\\\\\n", "\t Czechia & 14.2 & 15.9 & 70.9 & 64.6 & 14.9 & 19.6\\\\\n", "\t Denmark & 18.3 & 16.5 & 65.8 & 63.9 & 15.9 & 19.6\\\\\n", "\t Germany & 13.6 & 13.6 & 66.0 & 64.8 & 20.4 & 21.5\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 7\n", "\n", "| Countries <fct> | 2009 <dbl> | 2019 <dbl> | 2009 <dbl> | 2019 <dbl> | 2009 <dbl> | 2019 <dbl> |\n", "|---|---|---|---|---|---|---|\n", "| EU-27 | 15.4 | 15.2 | 67.1 | 64.6 | 17.4 | 20.3 |\n", "| Belgium | 16.9 | 16.9 | 66.0 | 64.2 | 17.1 | 18.9 |\n", "| Bulgaria | 13.1 | 14.4 | 68.9 | 64.3 | 18.0 | 21.3 |\n", "| Czechia | 14.2 | 15.9 | 70.9 | 64.6 | 14.9 | 19.6 |\n", "| Denmark | 18.3 | 16.5 | 65.8 | 63.9 | 15.9 | 19.6 |\n", "| Germany | 13.6 | 13.6 | 66.0 | 64.8 | 20.4 | 21.5 |\n", "\n" ], "text/plain": [ " Countries 2009 2019 2009 2019 2009 2019\n", "1 EU-27 15.4 15.2 67.1 64.6 17.4 20.3\n", "2 Belgium 16.9 16.9 66.0 64.2 17.1 18.9\n", "3 Bulgaria 13.1 14.4 68.9 64.3 18.0 21.3\n", "4 Czechia 14.2 15.9 70.9 64.6 14.9 19.6\n", "5 Denmark 18.3 16.5 65.8 63.9 15.9 19.6\n", "6 Germany 13.6 13.6 66.0 64.8 20.4 21.5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt <- cbind(cntr, age0_14_2009, age0_14_2019, age15_64_2009,age15_64_2019, age65_MAX_2009,age65_MAX_2019 )\n", "colnames(dt) <- c(\"Countries \", \"2009\", \"2019\",\"2009\",\"2019\",\"2009\",\"2019\")\n", "head(dt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the table with the function `kable`:\n", " - `kable_styling`: define the layout of the table,\n", " - `add_header_above`: add grouped column names,\n", " - `row`/`column_spec`: add features to rows or columns,\n", " - `group_rows`: define grouped rows,\n", " - `display_html`: display the table below the code." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
-
0-14 years old
15-64 years old
65 years old or over
Countries 2009 2019 2009 2019 2009 2019
EU-27 15.4 15.2 67.1 64.6 17.4 20.3
Belgium 16.9 16.9 66.0 64.2 17.1 18.9
Bulgaria 13.1 14.4 68.9 64.3 18.0 21.3
Czechia 14.2 15.9 70.9 64.6 14.9 19.6
Denmark 18.3 16.5 65.8 63.9 15.9 19.6
Germany 13.6 13.6 66.0 64.8 20.4 21.5
Estonia 14.9 16.4 67.6 63.8 17.4 19.8
Ireland 20.6 20.5 68.5 65.4 10.9 14.1
Greece 14.6 14.3 66.6 63.6 18.8 22.0
Spain 14.8 14.8 68.6 65.8 16.6 19.4
France 18.5 18.0 65.0 61.9 16.5 20.1
Croatia 15.4 14.4 66.7 65.0 17.9 20.6
Italy 14.1 13.2 65.7 64.1 20.3 22.8
Cyprus 17.7 16.1 69.9 67.8 12.5 16.1
Latvia 14.1 15.9 68.1 63.9 17.8 20.3
Lithuania 15.1 15.1 67.7 65.1 17.2 19.8
Luxembourg 18.0 16.1 68.0 69.6 14.0 14.4
Hungary 14.9 14.5 68.8 66.1 16.4 19.3
Malta 15.6 13.7 70.1 67.7 14.2 18.7
Netherlands 17.7 15.9 67.3 65.0 15.0 19.2
Austria 15.1 14.4 67.5 66.6 17.4 18.8
Poland 15.3 15.4 71.2 67.0 13.5 17.7
Portugal 15.4 13.7 66.5 64.4 18.0 21.8
Romania 15.8 15.7 68.1 65.9 16.1 18.5
Slovenia 14.0 15.1 69.6 65.1 16.4 19.8
Slovakia 15.6 15.7 72.1 68.2 12.2 16.0
Finland 16.7 16.0 66.5 62.3 16.7 21.8
Sweden 16.7 17.8 65.5 62.3 17.8 19.9
United Kingdom 17.7 17.9 66.2 63.7 16.1 18.4
Iceland 20.8 19.0 67.5 66.8 11.6 14.2
Liechtenstein 16.4 14.7 70.7 67.4 12.9 17.9
Norway 19.0 17.5 66.3 65.2 14.7 17.2
Switzerland 15.3 15.0 68.0 66.5 16.6 18.5
Montenegro 19.6 18.0 67.4 67.0 12.9 15.2
North Macedonia 18.1 16.4 70.4 69.6 11.5 14.1
Albania 23.3 17.2 66.3 68.7 10.4 14.1
Serbia 15.3 14.3 67.5 65.2 17.1 20.4
Turkey 26.3 23.4 66.9 67.8 6.8 8.8
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt %>%\n", " kable(\"html\")%>%\n", " kable_styling(c(\"striped\", \"bordered\")) %>%\n", " add_header_above(c(\"-\" = 1, \"0-14 years old\" = 2, \"15-64 years old\" = 2, \"65 years old or over\" = 2), background='bisque') %>%\n", " row_spec(0, background = 'bisque') %>% \n", " row_spec(1, background='orange',bold=TRUE) %>%\n", " column_spec(1, bold=TRUE) %>%\n", " group_rows(\" \", 29,30) %>%\n", " group_rows(\" \", 30,34) %>%\n", " group_rows(\" \", 34,38) %>%\n", " as.character() %>%\n", " display_html()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 5: Increase in the share of the population aged 65 years or over between 2009 and 2019\n", "\n", "Select the part of the dataset regarding the *population 65+ years* of the variable `indic_de`." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "dataset6 <- dataset[dataset$indic_de==\"PC_Y65_MAX\",]" ] }, { "cell_type": "markdown", "metadata": { "scrolled": true }, "source": [ "We have to plot the difference (in percentages) of the population with 65+ years between 2009 and 2019.\n", "We compute these differences in the percentage points with a `for` loop, assigning the resulting values to the category *2009* of the variable `time`:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "for(i in 1:length(countries)){\n", " countries_65 <-countries[i]\n", " dataset6[dataset6$geo==countries_65 & dataset6$time==2009, 4]<-dataset6[dataset6$geo==countries_65 & dataset6$time==2019, 4]-\n", " dataset6[dataset6$geo==countries_65 & dataset6$time==2009, 4]\n", " \n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Delete the rows of the category *2019* of the variable `time` (the values of the differences are stored in the category *2009*):" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 4
indic_degeotimevalues
<fct><fct><fct><dbl>
PC_Y65_MAXAL20093.7
PC_Y65_MAXAT20091.4
PC_Y65_MAXBE20091.8
PC_Y65_MAXBG20093.3
PC_Y65_MAXCH20091.9
PC_Y65_MAXCY20093.6
\n" ], "text/latex": [ "A data.table: 6 × 4\n", "\\begin{tabular}{llll}\n", " indic\\_de & geo & time & values\\\\\n", " & & & \\\\\n", "\\hline\n", "\t PC\\_Y65\\_MAX & AL & 2009 & 3.7\\\\\n", "\t PC\\_Y65\\_MAX & AT & 2009 & 1.4\\\\\n", "\t PC\\_Y65\\_MAX & BE & 2009 & 1.8\\\\\n", "\t PC\\_Y65\\_MAX & BG & 2009 & 3.3\\\\\n", "\t PC\\_Y65\\_MAX & CH & 2009 & 1.9\\\\\n", "\t PC\\_Y65\\_MAX & CY & 2009 & 3.6\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 4\n", "\n", "| indic_de <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|\n", "| PC_Y65_MAX | AL | 2009 | 3.7 |\n", "| PC_Y65_MAX | AT | 2009 | 1.4 |\n", "| PC_Y65_MAX | BE | 2009 | 1.8 |\n", "| PC_Y65_MAX | BG | 2009 | 3.3 |\n", "| PC_Y65_MAX | CH | 2009 | 1.9 |\n", "| PC_Y65_MAX | CY | 2009 | 3.6 |\n", "\n" ], "text/plain": [ " indic_de geo time values\n", "1 PC_Y65_MAX AL 2009 3.7 \n", "2 PC_Y65_MAX AT 2009 1.4 \n", "3 PC_Y65_MAX BE 2009 1.8 \n", "4 PC_Y65_MAX BG 2009 3.3 \n", "5 PC_Y65_MAX CH 2009 1.9 \n", "6 PC_Y65_MAX CY 2009 3.6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset6 <- dataset6[dataset6$time!=2019]\n", "head(dataset6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transform the dataset into a matrix, renaming the rows as the countries and deleting the variable `time` and `indic_de`:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 6 × 2 of type chr
geovalues
ALAL3.7
ATAT1.4
BEBE1.8
BGBG3.3
CHCH1.9
CYCY3.6
\n" ], "text/latex": [ "A matrix: 6 × 2 of type chr\n", "\\begin{tabular}{r|ll}\n", " & geo & values\\\\\n", "\\hline\n", "\tAL & AL & 3.7\\\\\n", "\tAT & AT & 1.4\\\\\n", "\tBE & BE & 1.8\\\\\n", "\tBG & BG & 3.3\\\\\n", "\tCH & CH & 1.9\\\\\n", "\tCY & CY & 3.6\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 6 × 2 of type chr\n", "\n", "| | geo | values |\n", "|---|---|---|\n", "| AL | AL | 3.7 |\n", "| AT | AT | 1.4 |\n", "| BE | BE | 1.8 |\n", "| BG | BG | 3.3 |\n", "| CH | CH | 1.9 |\n", "| CY | CY | 3.6 |\n", "\n" ], "text/plain": [ " geo values\n", "AL AL 3.7 \n", "AT AT 1.4 \n", "BE BE 1.8 \n", "BG BG 3.3 \n", "CH CH 1.9 \n", "CY CY 3.6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset6 <- as.matrix(dataset6[,-c(1,3)], rownames = dataset6$geo)\n", "head(dataset6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Order the dataset with respect to the variable `values` in decreasing order:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 6 × 2 of type chr
geovalues
FIFI5.1
LILI5.0
CZCZ4.7
MTMT4.5
NLNL4.2
PLPL4.2
\n" ], "text/latex": [ "A matrix: 6 × 2 of type chr\n", "\\begin{tabular}{r|ll}\n", " & geo & values\\\\\n", "\\hline\n", "\tFI & FI & 5.1\\\\\n", "\tLI & LI & 5.0\\\\\n", "\tCZ & CZ & 4.7\\\\\n", "\tMT & MT & 4.5\\\\\n", "\tNL & NL & 4.2\\\\\n", "\tPL & PL & 4.2\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 6 × 2 of type chr\n", "\n", "| | geo | values |\n", "|---|---|---|\n", "| FI | FI | 5.1 |\n", "| LI | LI | 5.0 |\n", "| CZ | CZ | 4.7 |\n", "| MT | MT | 4.5 |\n", "| NL | NL | 4.2 |\n", "| PL | PL | 4.2 |\n", "\n" ], "text/plain": [ " geo values\n", "FI FI 5.1 \n", "LI LI 5.0 \n", "CZ CZ 4.7 \n", "MT MT 4.5 \n", "NL NL 4.2 \n", "PL PL 4.2 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data <- dataset6[order(dataset6[,2], decreasing=TRUE),]\n", "head(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the function `which` to know the index of the rows of specific countries: European Union, United Kingdom, EFTA Members, or Candidate Members" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "18" ], "text/latex": [ "18" ], "text/markdown": [ "18" ], "text/plain": [ "[1] 18" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "31" ], "text/latex": [ "31" ], "text/markdown": [ "31" ], "text/plain": [ "[1] 31" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 2
  2. 22
  3. 27
  4. 34
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 22\n", "\\item 27\n", "\\item 34\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 22\n", "3. 27\n", "4. 34\n", "\n", "\n" ], "text/plain": [ "[1] 2 22 27 34" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 9
  2. 15
  3. 24
  4. 30
  5. 33
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 9\n", "\\item 15\n", "\\item 24\n", "\\item 30\n", "\\item 33\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 9\n", "2. 15\n", "3. 24\n", "4. 30\n", "5. 33\n", "\n", "\n" ], "text/plain": [ "[1] 9 15 24 30 33" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "which(data %in% \"EU27_2020\")\n", "which(data %in% \"UK\")\n", "which(data %in% c(\"LI\",\"CH\",\"NO\",\"IS\"))\n", "which(data %in% c(\"TR\",\"RS\",\"MK\",\"ME\",\"AL\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Merge the dataset by row, creating a new matrix divided into subgroups (*EU, EU members, EFTA members, Candidate countries*), using the indexes found " ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "data <- rbind(data[18,], 0, data[c(-2,-9,-15,-18,-22,-24,-27,-31,-30,-33,-34),],0,data[31,],0, data[c(2,22,27,34), ], 0, data[c(9,15,24,30,33),])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rename the rows of the \"one member\" groups" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "rownames(data)[1] <- \"EU-27\"\n", "rownames(data)[31] <- \"UK\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Modify the visualization options" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "options(repr.plot.width=20, repr.plot.height=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the graph with the function `barplot` (we cannot use `gglot` because we are dealing with matrices):\n", " - select the dataset and apply a table `t` function, in this way the data are correctly set for the barplot,\n", " - `col`: define the colour of the bars,\n", " - `ylim`/`ylab`: expand and rename the y axis, \n", " - `main`/`cex.main`: title of the plot (`main`) and the size of the font (`cex.main`),\n", " - `names.arg`/`cex.names`: put the name of the country as the name of each bar and define their sizes,\n", " - add a `grid` to compare more easily the values" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACWAAAASwCAMAAABIeoGzAAAANlBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDT09PZ2dnh4eHp6enw8PD/pQD///81243nAAAACXBIWXMA\nABJ0AAASdAHeZh94AAAgAElEQVR4nOzd60LbSBIFYHEJSZgElvd/2cXmEhsQyKglHVd/348l\nk9BuV7ncfZYwzPAAAEBTw9ZPAACgGgELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQEL\nAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEB\nCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAx\nAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCgMQELAKAxAQsAoDEBCwCg\nMQELAKAxAQsAoDEBC042DEu8cUYf9ccpe856bjcXw/Dje/tO8v7Bmu9x9Fi3V8Nw9Wf3q/th\nr9k2LXz+gn/X/eOLeHFzv//1r8vh8tfD218+duXy9jtPcuShHx6uXz7ppIeG4rIOHDgLqwas\nPxfDKXvOeW4/dhnk5XY/cd9J3j7YAnscPtbNU6raJazb8wlYz035pruLfaEXuxj0VP/Nw0e/\n/Hn6kxx56KfmPpz+0FBc1oEDZ2HVm/p5szUC1uPau+/uO3WDT/+57RZ/d2nxMTRePuyv/t+t\nt5prpPp5TXms99fD7332uXuu/+7ol793CejH4Ss99Ul+/NDP4XX3ixMfGooTsOBkhQPWt/c9\nfYPWD/7uIR9D1f3D3eXP3VewLgKv/UUC1vXlsH+Mi4eHn8Pwd5cyfx798mrflclfZzp4Nh8/\n9N3169cGT3xoKE7AgpPt75Pd/9xcvHwjyu3jNfPj79Of/bkcrh7239D0/A0rf3d/9/b0vUB/\ndtfR/hMPP2HsUZ9+9/UPfl68fIfLm6UHD3v0ef82/uhpvay9+vc5/67TSfvuvuT14/Vvil4f\n6Oj3D4Pa069fn9XhHm/XH3fhqIe7P/px/7zo4Bkd/vbO9b9f3u1jweEr+PSPF/tP+eiVem3Y\n4Sv2QZ3PXX3zJ3+eir95+vvJ18c//vzHf7r/8fgnD0etfW7K5XD9+JuX++d5/fRFuKNKXx/w\nbaNeHvql/mH3QAe/HP798l1rjx/ubT8/fujd2qMwfvjQ0DMBC072kgqu9nfh7jZ6/m6fv/vf\nvthfMf++YeXP0x/u7trf/3558Aljj/r8u8d/8PuDpQcPe/h5f45+++3Tevb81H+OB6zxfZ8e\ndXiKDP8e6Oj33wWsf8/qOGAdrz/uwmEpD/s/unxadPCM9r99cRAIHuv9tcsITw26fIwsr1/E\nek4+Tznow1fqpWGHr9jbhv3r6rs/udgno5f/fXn8488/6t7rJz035eeujl28udt94s+jSo8e\n8E2j9m73D3oxvH7F6eCXw/MvX9t0XPS/h3vXz48felfPcBywXCuw450AJ3tNHve7O/Xy6dbZ\n/frq6bcfb8bdBfnn4df+arzchZPfLxfT3e5Gu3w4/ISRRz347Zc/+LV/lHdLDx728PMONv7g\naT35u/v8+6uXcPimyC/2ffrDq336evNAr7//LmAdP6vXP3u//rALB4v2/3v/9FWTg2f062XP\ng4C1t3uMH0+/fP0q1uFXmD5+pV4adtDaDxu2/6T3f3KzW3a33+Xg8Y8//+mfrvZx5viTnp7h\n3/13N93uHvfoWb55wONGPXfrcdlh3jn45eXu7/EOvzD1puiXh3vfz48f+ur1H98/NHTNOwFO\n9nJnvfyV3O5vTB5/fX/9dOfuv9hx9XwFXb1d9PK1htFPeH3Ug98+/oOPlh58xeujBxh9Wj/2\nf/Bn/28PjgSsT/d9Wnz97oFef/9dwDp+Vq+/frP+TREHi65fPvH4GV0d/PbrZ9/s0sJja35c\nXvx9+PeXmS9/93axSxKjL8TL3wIef3XofZ0f/cmfXbj8vf+Ng8c//vzXLl29/aSH/XP7uf+S\n2M1j1Ll4W+nB537QqOunwPVxwPr53JWPWvvmxX7Tz48f+uHfL0YeGjrlnQAnexcO3uehly+f\nPP3T/a8fVy/h4PFivH33CR8+6tEDvtnueOnxwx58eN34w6e1c/Hy+Rdv7ukp+x7+4QcPNNan\nt8/q0/UvPlx08Iw+7Nz+CyovX905+OXu6zO3uy8Q/Rp7pV4e56C1XzTs6E/230N1vf/V++f4\nQffef9KPxwD1+CCPT/nqOcsdfMJ40Q9Pf1P55/V3Dz7v6X8v37yI462d9NCHn/T+oaFj3glw\nsrHL6PWfH46v7et/v/y1v4Ou3nzCx4969IAjt/Gzo4f99+n/Nv7oab17+KOrccq+Yxfy579+\n96ymXO6jiz767cNn98Fr87APW/ufM3B/XNX7hh209ouGHT+D3fdQPX3F7P1z/PiR3nzSY/p7\nfJJ/h+Hu5S/lDj5hvOinb8g7yNpH33i1C3y7b6z/dX3wTf9fvx6fPfThJ717aOiZgAUnG7uM\nXv/54ei3Hv9v/9Xv129Nuft5cfhXZ5886tEDjt/rDx897P7DwcYfPK0nJ34F64On/Pxh8lew\n3j+rT9e/6+HnjT/4nZd/1e2jgLUPV0/fb/7pLoet/aJhx1/BeoxFv55+NMTIE/iqkMencTNc\nPlwONy8x8INH+SAFPW78/CO/Pv63CF8WHn5r/iet/fKh39Xl3yKEJwIWnOzdBfT0bUEv34O1\n/5yrfz94aXhz0d/tf3n19iczTQ9Y75YePOz7O/LoAn+3dML3YI3vO0z+HqyDJ/f+We0/fPBE\n3nXhoNl/3j6j63ffM/Rz94f3+68+XV8N++fw7+q/ffyHpy/HfPxKHfXi7uCfRht29CdPf112\n+abl7wLWa5c++KTd39o9fUvT1fGjvP/cw8e9fP1Os49/DtbtzeU+vR3/yxVjM/3ny4c+2P/d\nQ0PXBCw42bvL6OXfIrz8d9f93N2zf15+MsKf5+/9vdz98u/Lv0X48gkjj3rw28cf3i09eNg3\nXxR62fiDp/Xkz9f/FuH4vsPBvy345oFef/9qdyvfH3yPz/tntf/wwRM5eD4Hi978W4Qvz+j3\ny/rXNfuf5P5z/31WN7sn8eP577deH/Hp77I+fqVeHuegtV807OhP9t/l9ZQ0Dh7/XcB67dIH\nn/T4W0/fJ7Z/mINPeP+5B497++87+f/++3HrB7+8em7Fa1QeeT3e9/Pjhz7Y/91DQ9cELDjZ\n+yj0779693Ih3T99w+/F3dNNuf+JQne7i+nlEw8+YexR93Y/YeDNF3XeLT142DeB6GXjD57W\ns+enfvPw5v6fsu/w9POojn4O1s2b3/+1/93Lf9UdPKujPd4/kYPnc7Do6Qc0Xb17Ru9/btPT\nI+7i4P3Tj446/K8o/3wJQB+/Ui+Pc9DaLxp29CevP8Pq6PGPP384+DlYB5/03JT9l83uXh/m\n4BPeP+Cbcdl7/fXNw9Evnwv691Wm90U/fXjXz5GH/rf/u4eGrglYcLLhfRS6vTr4SepPfj7e\ngz/2V+yv3Q/H3n9b9cPdj4vXnwv+7xPGHnVn958iefe1ijdLDx726PP+bfzR03q2e+pH/wbi\n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\n9cwZKXLynBsBa/Ye2QMZtUKrtKr9ivDCp3voXJFjPTM1FDl5zo2ANXuP7IGMWqFVWtV+RbXC\nu1XkWM98xYucPOdGwJq9R/ZARq3QKq1qv6Ja4d0qcqxnvuJFTp5zI2DN3iN7IKNWaJVWtV9R\nrfBuFTnWM1/xIifPuRGwZu+RPZBRK7RKq9qvqFZ4t4oc65mveJGT59wIWLP3yB7IqBVapVXt\nV1QrvFtFjvXMV7zIyXNuBKzZe2QPZNQKrdKq9iuqFd6tIsd65ite5OQ5NwLW7D2yBzJqhVZp\nVfsV1QrvVpFjPfMVL3LynBsBa/Ye2QMZtUKrtKr9imqFd6vIsZ75ihc5ec6NgDV7j+yBjFqh\nVVrVfkW1wrtV5FjPfMWLnDznRsCavUf2QEat0Cqtar+iWuHdKnKsZ77iRU6ecyNgzd4jeyCj\nVmiVVrVfUa3wbhU51jNf8SInz7kRsGbvkT2QUSu0Sqvar6hWeLeKHOuZr3iRk+fcfPt53/8Y\nhqvb5wf59FEErHYrMm8ErWq/Qqu6LbxbRY71zFe8yMlzbr77vO8v9v/99+unBxGwVlqReSNo\nVfsVWtVt4d0qcqxnvuJFTp5z893nfTP8ekxZvy6u9g8iYK20IvNG0Kr2K7Sq28K7VeRYz3zF\ni5w85+a7z/viaeHdxeWdgLXeiswbQavar9CqbgvvVpFjPfMVL3LynJvvPu+XTHV/dfVRwBoO\nzXh6Y7uv8LoUGcioFVqlVe1XVCu8W0WO9cxXvMrJM92KzR333WdxOdy//OrKV7BWW5F5I2hV\n+xVa1W3h3SpyrGe+4t2ePNv67rP4Nfx4/tXdcCVgrbUi80bQqvYrtKrbwrtV5FjPfMW7PXm2\n9e1ncfOaqm6/+GqcgNVuReaNoFXtV2hVt4V3q8ixnvmKd3vybOv7z+Lv9cuv7n4IWCutyLwR\ntKr9Cq3qtvBuFTnWM1/xbk+eba3wLASsdisybwStar9Cq7otvFtFjvXMV7zbk2dbAtbsPaoN\nZORVqFULrogqXMDqVpFjPfMV7/bk2ZaANXuPagMZeRVq1YIrogoXsLpV5FjPfMW7PXm2JWDN\n3qPaQEZehVq14IqowgWsbhU51jNf8W5Pnm0JWLP3qDaQkVehVi24IqpwAatbRY71zFe825Nn\nWwLW7D2qDWTkVahVC66IKlzA6laRYz3zFe/25NmWgDV7j2oDGXkVatWCK6IKF7C6VeRYz3zF\n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\nUMN7/OVcyVKxQVUvX29gWrjVTQErOBSzGTo2RPLZ7V4BKx8kwYA1jPXorJCdz4o9OF+iaLIx\n5Wn98f50wBreM/SWPmm1S/rxrTSv3lRtsfPH15lsTvXvis+BnVbYv/qtMmAdZ6DfFLCe+/ZO\nvqi4X3iD/WWN68tNkOUCedPGtup7330Wn4ac2ZNyDcPDo8Mn1csvynlswJo9Vha3KW+CQBXR\nxn1wwDp9erWuuY0cD1j9rsZeclQ3pNINiZf4lniiAWsdvwuZLBUbVPXy9QamhVvdFLAiB8a4\nwn6GrnwP1ubpjq9pmImvi7KxHp0VsvNZsQfnSxRNWqg8rT/enw5Yu6eut9/TN+Tv05z83KzB\nqwLWcaycbgfvu1d5L73CPVnh6S8pvFcHrO5qJLRJ04XuErA+jh1ynD0+zunnvPj70qjvJ6Hs\nRdKLBbKmDW7VTN8Vr3Xm9qRUQ//K++OofO7e5P66/FeaHhuw5o6V5W3KmyBQRbRxHxywTm9o\nCF3j1GxSvqvJa7qvf1hdN6SSWuJ/e+Hyif1wSyp4nXbjm9xjg6pevt7ItHCjmwJW5MC4rLCf\noUNDJJ/d7hSwJoMkGrD6sR6dFbLzWbEHr5QIbll8Wn+8Pxiwku8X9H+5Kf2G0Ev69YPihWtF\ntfM/X7E5b8PpT0ptsy2+uvL9+ZZ4bcA6rPpTW9W3f4IlqgPW2CHpdP2yeLe+f5B+HyyQNW1w\nq2b67qs4W8/tyUIN/W50w+1j+FuEy6f1bFyEOnCcfGqWHn6YOVYK25Q1QaSKYOPmW3+ngJVU\nkfzhtWKBrDMWqprs6m4osPQwwGRIBToxG1eBEpfv9OzGdzssrP7w/QCMjKyZIdL6LVXZekPT\nwm2yTg8tn25d7HVv5xk6NkSy2e1OAWsySMo9no/14KyQnc+KPThTIjYSZzfxN/nbAeuwez7+\n8Lyb+/35H+2qnf/5mvfjhm26Q2ldHivdb1Z1Vy3D73e/KmB1fwy+3/Fx8fX1oNEfq5MHRhYK\nHNKmDW7VXN+9Fq915vbkeg3dSep1iPPvz6ey2+VHLrNxEerAHwWsmWOlsE1ZE0SqCDZuvvX3\nD1j9oRUqUBmwxl392h6P8/V2+XouH1KBTszGVaBE8mF5/2Ns5F4OwNi0cFkmMqhuka43Ni3c\nJOv00PLdf8oHRrLC3XD2jwyRdHa7U8CaDJJyj0/GenBWSM9nxR6cKVF1gopP64/25wIWAMBv\nJ2ABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEA\nNCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmAB\nADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZg\nAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQm\nYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0\nJmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEA\nNCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmABADQmYAEANCZgAQA0JmAB\nADQmYAEANCZgAQA09h9VFOXdWmHt3wAAAABJRU5ErkJggg==", "text/plain": [ "Plot with title \"Increase in the share of the population aged 65 years or over between 2009 and 2019\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barplot(t(data[,2]), col = \"orange\", ylim=c(0,6), ylab= \"percentage points\", \n", " main = \"Increase in the share of the population aged 65 years or over between 2009 and 2019\", \n", " cex.main=1, names.arg=row.names(data), cex.names=1)\n", "\n", "grid(NA,5,lwd=2,col=\"lightgrey\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Median age is highest in Italy\n", " \n", "### Figure 6: Median age of population, 2009 and 2019\n", "\n", "Select the part of the dataset regarding the *median age* of each country and divide it into two subsets:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "dt2019 <- dataset[dataset$indic_de==\"MEDAGEPOP\"&dataset$time==2019,]\n", "dt2009 <- dataset[dataset$indic_de==\"MEDAGEPOP\"&dataset$time==2009,]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rename the variable `values` for the two dataset:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "names(dt2019)[4] <- \"values2019\"\n", "names(dt2009)[4] <- \"values2009\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **Merge** the two dataset into a new one, with respect to the variable `geo`.\n", "- Delete the columns not necessary for the analysis.\n", "- **Order** the dataset with respect to the values of *2019*." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 3
geovalues2019values2009
<fct><dbl><dbl>
IT46.743.0
DE46.043.7
PT45.240.8
EL44.940.7
BG44.542.0
LI44.240.3
\n" ], "text/latex": [ "A data.table: 6 × 3\n", "\\begin{tabular}{lll}\n", " geo & values2019 & values2009\\\\\n", " & & \\\\\n", "\\hline\n", "\t IT & 46.7 & 43.0\\\\\n", "\t DE & 46.0 & 43.7\\\\\n", "\t PT & 45.2 & 40.8\\\\\n", "\t EL & 44.9 & 40.7\\\\\n", "\t BG & 44.5 & 42.0\\\\\n", "\t LI & 44.2 & 40.3\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 3\n", "\n", "| geo <fct> | values2019 <dbl> | values2009 <dbl> |\n", "|---|---|---|\n", "| IT | 46.7 | 43.0 |\n", "| DE | 46.0 | 43.7 |\n", "| PT | 45.2 | 40.8 |\n", "| EL | 44.9 | 40.7 |\n", "| BG | 44.5 | 42.0 |\n", "| LI | 44.2 | 40.3 |\n", "\n" ], "text/plain": [ " geo values2019 values2009\n", "1 IT 46.7 43.0 \n", "2 DE 46.0 43.7 \n", "3 PT 45.2 40.8 \n", "4 EL 44.9 40.7 \n", "5 BG 44.5 42.0 \n", "6 LI 44.2 40.3 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data2 <- merge(x=dt2019, y=dt2009, by=\"geo\")\n", "data2 <- data2[,-c(2,3,5,6)]\n", "data2 <- data2[order(data2[,2],decreasing=T),]\n", "head(data2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transform the dataset into a `matrix` (notice that now the matrix has *char* values):" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 6 × 3 of type chr
geovalues2019values2009
ITIT46.743.0
DEDE46.043.7
PTPT45.240.8
ELEL44.940.7
BGBG44.542.0
LILI44.240.3
\n" ], "text/latex": [ "A matrix: 6 × 3 of type chr\n", "\\begin{tabular}{r|lll}\n", " & geo & values2019 & values2009\\\\\n", "\\hline\n", "\tIT & IT & 46.7 & 43.0\\\\\n", "\tDE & DE & 46.0 & 43.7\\\\\n", "\tPT & PT & 45.2 & 40.8\\\\\n", "\tEL & EL & 44.9 & 40.7\\\\\n", "\tBG & BG & 44.5 & 42.0\\\\\n", "\tLI & LI & 44.2 & 40.3\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 6 × 3 of type chr\n", "\n", "| | geo | values2019 | values2009 |\n", "|---|---|---|---|\n", "| IT | IT | 46.7 | 43.0 |\n", "| DE | DE | 46.0 | 43.7 |\n", "| PT | PT | 45.2 | 40.8 |\n", "| EL | EL | 44.9 | 40.7 |\n", "| BG | BG | 44.5 | 42.0 |\n", "| LI | LI | 44.2 | 40.3 |\n", "\n" ], "text/plain": [ " geo values2019 values2009\n", "IT IT 46.7 43.0 \n", "DE DE 46.0 43.7 \n", "PT PT 45.2 40.8 \n", "EL EL 44.9 40.7 \n", "BG BG 44.5 42.0 \n", "LI LI 44.2 40.3 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data2<-as.matrix(data2, rownames=data2$geo)\n", "head(data2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the function `which` to know the index of the rows of specific countries: European Union, United Kingdom, EFTA Members, or Candidate Members." ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "11" ], "text/latex": [ "11" ], "text/markdown": [ "11" ], "text/plain": [ "[1] 11" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "28" ], "text/latex": [ "28" ], "text/markdown": [ "28" ], "text/plain": [ "[1] 28" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 6
  2. 19
  3. 30
  4. 37
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 6\n", "\\item 19\n", "\\item 30\n", "\\item 37\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 6\n", "2. 19\n", "3. 30\n", "4. 37\n", "\n", "\n" ], "text/plain": [ "[1] 6 19 30 37" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 12
  2. 32
  3. 33
  4. 36
  5. 38
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 12\n", "\\item 32\n", "\\item 33\n", "\\item 36\n", "\\item 38\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 12\n", "2. 32\n", "3. 33\n", "4. 36\n", "5. 38\n", "\n", "\n" ], "text/plain": [ "[1] 12 32 33 36 38" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "which(data2 %in% \"EU27_2020\")\n", "which(data2 %in% \"UK\")\n", "which(data2 %in% c(\"LI\",\"CH\",\"NO\",\"IS\"))\n", "which(data2 %in% c(\"TR\",\"RS\",\"MK\",\"ME\",\"AL\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Delete from the dataset the column referring to the countries (this information is already contained in the row indexes)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "data2 <- data2[,-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Change the *class* of the matrix into a numeric one:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 6 × 2 of type dbl
values2019values2009
IT46.743.0
DE46.043.7
PT45.240.8
EL44.940.7
BG44.542.0
LI44.240.3
\n" ], "text/latex": [ "A matrix: 6 × 2 of type dbl\n", "\\begin{tabular}{r|ll}\n", " & values2019 & values2009\\\\\n", "\\hline\n", "\tIT & 46.7 & 43.0\\\\\n", "\tDE & 46.0 & 43.7\\\\\n", "\tPT & 45.2 & 40.8\\\\\n", "\tEL & 44.9 & 40.7\\\\\n", "\tBG & 44.5 & 42.0\\\\\n", "\tLI & 44.2 & 40.3\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 6 × 2 of type dbl\n", "\n", "| | values2019 | values2009 |\n", "|---|---|---|\n", "| IT | 46.7 | 43.0 |\n", "| DE | 46.0 | 43.7 |\n", "| PT | 45.2 | 40.8 |\n", "| EL | 44.9 | 40.7 |\n", "| BG | 44.5 | 42.0 |\n", "| LI | 44.2 | 40.3 |\n", "\n" ], "text/plain": [ " values2019 values2009\n", "IT 46.7 43.0 \n", "DE 46.0 43.7 \n", "PT 45.2 40.8 \n", "EL 44.9 40.7 \n", "BG 44.5 42.0 \n", "LI 44.2 40.3 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(data2) <- \"numeric\"\n", "head(data2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Merge the dataset by row, creating a new matrix divided into subgroups (*EU, EU members, EFTA members, Candidate countries*), with respect to their indexes in the dataset" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "data2 <- rbind(data2[11,], 0, data2[-c(11,28,6,19,30,37,12,32,33,36,38),],0,data2[28,],0, data2[c(6,19,30,37), ], 0, data2[c(12,32,33,36,38),])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rename the rows of the \"one member\" groups" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "rownames(data2)[1] <- \"EU-27\"\n", "rownames(data2)[31] <- \"UK\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the graph with the function `barplot` (we cannot use `gglot` because we are dealing with matrices):\n", "- select the dataset and apply a table `t` function, in this way the data are correctly set for the barplot,\n", "- `ylim`: expand the y axis,\n", "- `col`: define the colour of the bars (with respect to *2009* and *2019*,\n", "- `main`/`cex.main`: title of the plot (`main`) and the size of the font (`cex.main`),\n", "- `names.arg`/`cex.names`: put the name of the country as the name of each bar and define their sizes,\n", "- add a `legend` function,\n", "- add a `grid` to compare more easily the values." ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\neqxZ2Yp66gQldCHpKhKW6iQTs2dkQpHLlVHlFabW+DTkG8hHiWuwfo/b64vtcerf72/swo5f\nZMe4OQzfZdLkUwZr1f8Z9+/t6jbG3LPFw91qB9X+3flmM9+chy+6d/vsFchwz1qDNfhr7W8Y\n3Op5vNSu8dfEzMgkMfotjnKDdT3P3YFaCzJxfAYuh6tqfZi9TplMxHwqbkaPt63nvP7Uccpk\nSZLwokWoN1iTeTg7kZFCdkJW0tslE0OXZeIzS4Qh+m1kR3YZw7HLju4ikvTNbz44VgqDdeya\nv2BFDXT5ErqQ0SoSluphJmbPyIQilyujyitMrZfTkG8gnySUwQIAAACIAAYLAAAAwBgMFgAA\nAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAGgwUAAABgDAYLAAAAwBgM\nFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAGgwUAAABgDAYLAAAA\nwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAGgwUAAABgDAYL\nAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAGgwUAAABg\nDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAGgwUA\nAABgDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAAADAG\ngwUAAABgDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPBAgAA\nADAGgwUAAABgDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAAGIPB\nAgAAADAGgwUAAABgDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWABAAAA\nGIPBAgAAADAGgwUAAABgDAYLAAAAwBgMFgAAAIAxGCwAAAAAYzBYAAAAAMZgsAAAAACMwWAB\nAAAAGPMfB9VC/doQHyoAAAAASUVORK5CYII=", "text/plain": [ "Plot with title \"Median age of population, 2009 and 2019 \n", " (years)\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barplot(t(data2), ylim=c(0,60), beside = T, col = c(\"lightskyblue\",\"orange\"), main = \"Median age of population, 2009 and 2019 \\n (years)\",\n", " cex.main=2, names.arg=row.names(data2), cex.names=1)\n", "\n", "legend(\"topright\", legend =c(\"2019\",\"2009\"), fill = c(\"lightskyblue\",\"orange\"), bty=\"n\", box.lty=4, pt.cex=1, cex=1.5, adj=0.7)\n", "\n", "grid(NA,5,lwd=2,col=\"lightgrey\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Slightly more than three persons of working age for every person aged 65 or over\n", "\n", "### Table 2: Population age structure indicators, 1 January 2019\n", "\n", "Create a vector `y` to filter the dataset with the demographic indicators of interest:" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "y <- c(\"YOUNGDEP1\",\"OLDDEP1\",\"DEPRATIO1\",\"PC_Y80_MAX\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a new dataset from a subset of the one loaded from the _Eurostat_ API with respect to the vectors of demographic indicators of interest:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 4
indic_degeotimevalues
<fct><fct><fct><dbl>
DEPRATIO1AL201945.6
DEPRATIO1AT201949.9
DEPRATIO1BE201955.8
DEPRATIO1BG201955.5
DEPRATIO1CH201950.3
DEPRATIO1CY201947.6
\n" ], "text/latex": [ "A data.table: 6 × 4\n", "\\begin{tabular}{llll}\n", " indic\\_de & geo & time & values\\\\\n", " & & & \\\\\n", "\\hline\n", "\t DEPRATIO1 & AL & 2019 & 45.6\\\\\n", "\t DEPRATIO1 & AT & 2019 & 49.9\\\\\n", "\t DEPRATIO1 & BE & 2019 & 55.8\\\\\n", "\t DEPRATIO1 & BG & 2019 & 55.5\\\\\n", "\t DEPRATIO1 & CH & 2019 & 50.3\\\\\n", "\t DEPRATIO1 & CY & 2019 & 47.6\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 4\n", "\n", "| indic_de <fct> | geo <fct> | time <fct> | values <dbl> |\n", "|---|---|---|---|\n", "| DEPRATIO1 | AL | 2019 | 45.6 |\n", "| DEPRATIO1 | AT | 2019 | 49.9 |\n", "| DEPRATIO1 | BE | 2019 | 55.8 |\n", "| DEPRATIO1 | BG | 2019 | 55.5 |\n", "| DEPRATIO1 | CH | 2019 | 50.3 |\n", "| DEPRATIO1 | CY | 2019 | 47.6 |\n", "\n" ], "text/plain": [ " indic_de geo time values\n", "1 DEPRATIO1 AL 2019 45.6 \n", "2 DEPRATIO1 AT 2019 49.9 \n", "3 DEPRATIO1 BE 2019 55.8 \n", "4 DEPRATIO1 BG 2019 55.5 \n", "5 DEPRATIO1 CH 2019 50.3 \n", "6 DEPRATIO1 CY 2019 47.6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset7 <- subset(dataset, dataset$indic_de %in% y & dataset$time==2019)\n", "head(dataset7)" ] }, { "cell_type": "markdown", "metadata": { "scrolled": true }, "source": [ "- Create vectors with the values for each year category of `indic_de` (`\"YOUNGDEP1\"`, `\"OLDDEP1\"`, `\"DEPRATIO1\"`, `\"PC_Y80_MAX\"`).\n", "- Order them with respect to the vector `countries` previously defined." ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "young <- dataset7[dataset7$indic_de==\"YOUNGDEP1\", -c(1,3)]\n", "young <- young[order(factor(young$geo, levels=unique(countries))),-1]\n", "\n", "old <- dataset7[dataset7$indic_de== \"OLDDEP1\", -c(1,3)]\n", "old <- old[order(factor(old$geo, levels=unique(countries))),-1]\n", "\n", "tot <- dataset7[dataset7$indic_de==\"DEPRATIO1\", -c(1,3)]\n", "tot <- tot[order(factor(tot$geo, levels=unique(countries))),-1]\n", "\n", "eight <- dataset7[dataset7$indic_de==\"PC_Y80_MAX\", -c(1,3)]\n", "eight <- eight[order(factor(eight$geo, levels=unique(countries))),-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Merge the different vectors and create the table with the function `cbind`:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 6 × 5
Young-age dependency ratioOld-age dependency ratioTotal age dependency ratioShare of population aged 80 or over
<fct><dbl><dbl><dbl><dbl>
EU-27 23.531.454.95.8
Belgium 26.429.555.85.6
Bulgaria22.333.255.54.8
Czechia 24.630.455.04.1
Denmark 25.830.656.44.5
Germany 21.033.254.26.5
\n" ], "text/latex": [ "A data.table: 6 × 5\n", "\\begin{tabular}{lllll}\n", " & Young-age dependency ratio & Old-age dependency ratio & Total age dependency ratio & Share of population aged 80 or over\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t EU-27 & 23.5 & 31.4 & 54.9 & 5.8\\\\\n", "\t Belgium & 26.4 & 29.5 & 55.8 & 5.6\\\\\n", "\t Bulgaria & 22.3 & 33.2 & 55.5 & 4.8\\\\\n", "\t Czechia & 24.6 & 30.4 & 55.0 & 4.1\\\\\n", "\t Denmark & 25.8 & 30.6 & 56.4 & 4.5\\\\\n", "\t Germany & 21.0 & 33.2 & 54.2 & 6.5\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 6 × 5\n", "\n", "| <fct> | Young-age dependency ratio <dbl> | Old-age dependency ratio <dbl> | Total age dependency ratio <dbl> | Share of population aged 80 or over <dbl> |\n", "|---|---|---|---|---|\n", "| EU-27 | 23.5 | 31.4 | 54.9 | 5.8 |\n", "| Belgium | 26.4 | 29.5 | 55.8 | 5.6 |\n", "| Bulgaria | 22.3 | 33.2 | 55.5 | 4.8 |\n", "| Czechia | 24.6 | 30.4 | 55.0 | 4.1 |\n", "| Denmark | 25.8 | 30.6 | 56.4 | 4.5 |\n", "| Germany | 21.0 | 33.2 | 54.2 | 6.5 |\n", "\n" ], "text/plain": [ " Young-age dependency ratio Old-age dependency ratio\n", "1 EU-27 23.5 31.4 \n", "2 Belgium 26.4 29.5 \n", "3 Bulgaria 22.3 33.2 \n", "4 Czechia 24.6 30.4 \n", "5 Denmark 25.8 30.6 \n", "6 Germany 21.0 33.2 \n", " Total age dependency ratio Share of population aged 80 or over\n", "1 54.9 5.8 \n", "2 55.8 5.6 \n", "3 55.5 4.8 \n", "4 55.0 4.1 \n", "5 56.4 4.5 \n", "6 54.2 6.5 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt7 <- cbind(cntr,young,old,tot,eight)\n", "colnames(dt7) <- c(\"\", \"Young-age dependency ratio\",\"Old-age dependency ratio\",\"Total age dependency ratio\",\"Share of population aged 80 or over\")\n", "head(dt7)" ] }, { "cell_type": "markdown", "metadata": { "scrolled": true }, "source": [ "Display the table with the function `kable`:\n", " - `kable_styling`: define the layout of the table,\n", " - `row`/`column_spec`: add features to rows or columns,\n", " - `group_rows`: define grouped rows,\n", " - `display_html`: display the table below the code." ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
Young-age dependency ratio Old-age dependency ratio Total age dependency ratio Share of population aged 80 or over
EU-27 23.5 31.4 54.9 5.8
Belgium 26.4 29.5 55.8 5.6
Bulgaria 22.3 33.2 55.5 4.8
Czechia 24.6 30.4 55.0 4.1
Denmark 25.8 30.6 56.4 4.5
Germany 21.0 33.2 54.2 6.5
Estonia 25.7 31.0 56.7 5.6
Ireland 31.4 21.6 53.0 3.3
Greece 22.5 34.6 57.2 7.1
Spain 22.4 29.5 51.9 6.1
France 29.0 32.5 61.5 6.1
Croatia 22.2 31.6 53.8 5.3
Italy 20.6 35.7 56.3 7.2
Cyprus 23.8 23.8 47.6 3.7
Latvia 24.9 31.7 56.6 5.6
Lithuania 23.2 30.4 53.5 5.8
Luxembourg 23.1 20.7 43.8 4.0
Hungary 22.0 29.3 51.3 4.4
Malta 20.2 27.6 47.8 4.2
Netherlands 24.4 29.5 53.9 4.6
Austria 21.6 28.2 49.9 5.0
Poland 22.9 26.4 49.3 4.4
Portugal 21.2 33.9 55.1 6.4
Romania 23.8 28.1 52.0 4.7
Slovenia 23.2 30.5 53.7 5.3
Slovakia 23.1 23.5 46.6 3.3
Finland 25.7 35.1 60.8 5.5
Sweden 28.5 31.9 60.5 5.1
United Kingdom 28.1 28.9 57.1 5.0
Iceland 28.4 21.3 49.7 3.5
Liechtenstein 21.9 26.5 48.4 3.8
Norway 26.9 26.4 53.4 4.2
Switzerland 22.6 27.8 50.3 5.2
Montenegro 26.9 22.7 49.5 3.3
North Macedonia 23.5 20.2 43.7 2.5
Albania 25.1 20.5 45.6 2.7
Serbia 21.9 31.3 53.2 4.6
Turkey 34.5 12.9 47.4 1.8
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt7 %>%\n", " kable(\"html\")%>%\n", " kable_styling(c(\"striped\", \"bordered\")) %>%\n", " row_spec(0, background='bisque', bold=TRUE, align=\"c\", font_size=15) %>%\n", " row_spec(1, background='orange') %>%\n", " column_spec(1, bold=TRUE) %>%\n", " group_rows(\" \", 29,30) %>%\n", " group_rows(\" \", 30,34) %>%\n", " group_rows(\" \", 34,38) %>%\n", " as.character()%>%\n", " display_html()\n" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 4 }