{
"cells": [
{
"cell_type": "markdown",
"id": "cee3d0af",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Introduction to R and jupyter notebook\n",
"\n",
"In order to illustrate the use of `jupyter notebook` and `R`, let us prepare for the next lecture using a `notebook`.\n",
"\n",
"Notebooks run online (here on [syzygy.ca](syzygy.ca)). It uses two (mainly) types of \"cells\". A cell like this one is a text cell. Text is formatted using `markdown`, which is a simple text description language yet has relatively powerful capabilities. See [here](https://www.markdownguide.org/getting-started/) for details, for instance."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8245d9f0",
"metadata": {
"slideshow": {
"slide_type": "subslide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [],
"source": [
"# This is an R code cell \n",
"# The sign \"#\" is used for comments in R, so these lines do nothing"
]
},
{
"cell_type": "markdown",
"id": "a8e10089",
"metadata": {
"slideshow": {
"slide_type": "-"
}
},
"source": [
"This is a markdown cell."
]
},
{
"cell_type": "markdown",
"id": "1b424914",
"metadata": {
"slideshow": {
"slide_type": "-"
}
},
"source": [
"Cells are evaluated by pressing Shift+Enter or Ctrl+Enter. This current one is an evaluated markdown cell, the one just above is an unevaluated markdown cell, the first an R cell (evaluated or not, since it is only a comment, it is hard to tell the difference)"
]
},
{
"cell_type": "markdown",
"id": "37b28f53",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Grabing the Canadian census data\n",
"\n",
"To illustrate the method, we will consider the evolution of the population of Canada through time. For this, we will grab the census data. We search for \"canada historical census data csv\", since `csv` (comma separated values) is a very easy format to use with `R`. [Here](https://www150.statcan.gc.ca/n1/pub/11-516-x/sectiona/4147436-eng.htm), we find a `csv` for 1851 to 1976. We follow the link to Table A2-14, where we find another link, this time to a `csv` file. This is what we use in `R`.\n",
"\n",
"The function `read.csv` reads in a file (potentially directly from the web). We assign the result to the variable `data`. We then use the function `head` to show the first few lines in the result."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b37083a8",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"A data.frame: 6 × 23\n",
"\n",
"\t | X | Series.A2.14. | Population.of.Canada..by.province..census.dates..1851.to.1976 | X.1 | X.2 | X.3 | X.4 | X.5 | X.6 | X.7 | ⋯ | X.11 | X.12 | X.13 | X.14 | X.15 | X.16 | X.17 | X.18 | X.19 | X.20 |
\n",
"\t | <int> | <chr> | <chr> | <int> | <chr> | <chr> | <int> | <chr> | <chr> | <chr> | ⋯ | <chr> | <int> | <chr> | <int> | <chr> | <int> | <chr> | <chr> | <int> | <lgl> |
\n",
"\n",
"\n",
"\t1 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\t2 | NA | Year | Canada | NA | Newfound- | Prince | NA | Nova | New | Quebec | ⋯ | Saskat- | NA | Alberta | NA | British | NA | Yukon | Northwest | NA | NA |
\n",
"\t3 | NA | | | NA | land | Edward | NA | Scotia | Brunswick | | ⋯ | chewan | NA | | NA | Columbia | NA | Territory | Territories | NA | NA |
\n",
"\t4 | NA | | | NA | | Island | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\t5 | NA | | 2 | NA | 3 | 4 | NA | 5 | 6 | 7 | ⋯ | 10 | NA | 11 | NA | 12 | NA | 13 | 14 | NA | NA |
\n",
"\t6 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 6 × 23\n",
"\\begin{tabular}{r|lllllllllllllllllllll}\n",
" & X & Series.A2.14. & Population.of.Canada..by.province..census.dates..1851.to.1976 & X.1 & X.2 & X.3 & X.4 & X.5 & X.6 & X.7 & ⋯ & X.11 & X.12 & X.13 & X.14 & X.15 & X.16 & X.17 & X.18 & X.19 & X.20\\\\\n",
" & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n",
"\\hline\n",
"\t1 & NA & & & NA & & & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\t2 & NA & Year & Canada & NA & Newfound- & Prince & NA & Nova & New & Quebec & ⋯ & Saskat- & NA & Alberta & NA & British & NA & Yukon & Northwest & NA & NA\\\\\n",
"\t3 & NA & & & NA & land & Edward & NA & Scotia & Brunswick & & ⋯ & chewan & NA & & NA & Columbia & NA & Territory & Territories & NA & NA\\\\\n",
"\t4 & NA & & & NA & & Island & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\t5 & NA & & 2 & NA & 3 & 4 & NA & 5 & 6 & 7 & ⋯ & 10 & NA & 11 & NA & 12 & NA & 13 & 14 & NA & NA\\\\\n",
"\t6 & NA & & & NA & & & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 6 × 23\n",
"\n",
"| | X <int> | Series.A2.14. <chr> | Population.of.Canada..by.province..census.dates..1851.to.1976 <chr> | X.1 <int> | X.2 <chr> | X.3 <chr> | X.4 <int> | X.5 <chr> | X.6 <chr> | X.7 <chr> | ⋯ ⋯ | X.11 <chr> | X.12 <int> | X.13 <chr> | X.14 <int> | X.15 <chr> | X.16 <int> | X.17 <chr> | X.18 <chr> | X.19 <int> | X.20 <lgl> |\n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 1 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"| 2 | NA | Year | Canada | NA | Newfound- | Prince | NA | Nova | New | Quebec | ⋯ | Saskat- | NA | Alberta | NA | British | NA | Yukon | Northwest | NA | NA |\n",
"| 3 | NA | | | NA | land | Edward | NA | Scotia | Brunswick | | ⋯ | chewan | NA | | NA | Columbia | NA | Territory | Territories | NA | NA |\n",
"| 4 | NA | | | NA | | Island | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"| 5 | NA | | 2 | NA | 3 | 4 | NA | 5 | 6 | 7 | ⋯ | 10 | NA | 11 | NA | 12 | NA | 13 | 14 | NA | NA |\n",
"| 6 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"\n"
],
"text/plain": [
" X Series.A2.14.\n",
"1 NA \n",
"2 NA Year \n",
"3 NA \n",
"4 NA \n",
"5 NA \n",
"6 NA \n",
" Population.of.Canada..by.province..census.dates..1851.to.1976 X.1 X.2 \n",
"1 NA \n",
"2 Canada NA Newfound-\n",
"3 NA land \n",
"4 NA \n",
"5 2 NA 3 \n",
"6 NA \n",
" X.3 X.4 X.5 X.6 X.7 ⋯ X.11 X.12 X.13 X.14 X.15 X.16\n",
"1 NA ⋯ NA NA NA \n",
"2 Prince NA Nova New Quebec ⋯ Saskat- NA Alberta NA British NA \n",
"3 Edward NA Scotia Brunswick ⋯ chewan NA NA Columbia NA \n",
"4 Island NA ⋯ NA NA NA \n",
"5 4 NA 5 6 7 ⋯ 10 NA 11 NA 12 NA \n",
"6 NA ⋯ NA NA NA \n",
" X.17 X.18 X.19 X.20\n",
"1 NA NA \n",
"2 Yukon Northwest NA NA \n",
"3 Territory Territories NA NA \n",
"4 NA NA \n",
"5 13 14 NA NA \n",
"6 NA NA "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_old = read.csv(\"https://www150.statcan.gc.ca/n1/en/pub/11-516-x/sectiona/A2_14-eng.csv?st=L7vSnqio\")\n",
"head(data_old)"
]
},
{
"cell_type": "markdown",
"id": "183ca6b1",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Obviously, this does not make a lot of sense. This is normal: take a look at the first few lines in the file. They take the form\n",
"```\n",
",Series A2-14.,\"Population of Canada, by province, census dates, 1851 to 1976\",,,,,,,,,,,,,,,,,,,,\n",
",,,,,,,,,,,,,,,,,,,,,,\n",
",Year,Canada,,Newfound-,Prince,,Nova,New,Quebec,Ontario, Manitoba,,Saskat-,,Alberta,,British,,Yukon,Northwest,,\n",
",,,,land,Edward,,Scotia,Brunswick,,,,,chewan,,,,Columbia,,Territory,Territories,,\n",
",,,,,Island,,,,,,,,,,,,,,,,,\n",
",,2,,3,4,,5,6,7,8,9,,10,,11,,12,,13,14,,\n",
",,,,,,,,,,,,,,,,,,,,,,\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "c40d15fd",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"This happens often: the first few lines are here to set the information, they lay out a simple version of the so-called *metadata*\n",
"\n",
"- The first line here does this; it is easy to deal with this: the function `read.csv` takes the optional argument `skip=`, which indicates how many lines to skip at the beginning\n",
"- The second line is also empty, so let us skip it too"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "241a052c",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 6 × 23\n",
"\n",
"\t | X | Year | Canada | X.1 | Newfound. | Prince | X.2 | Nova | New | Quebec | ⋯ | Saskat. | X.4 | Alberta | X.5 | British | X.6 | Yukon | Northwest | X.7 | X.8 |
\n",
"\t | <int> | <chr> | <chr> | <int> | <chr> | <chr> | <int> | <chr> | <chr> | <chr> | ⋯ | <chr> | <int> | <chr> | <int> | <chr> | <int> | <chr> | <chr> | <int> | <lgl> |
\n",
"\n",
"\n",
"\t1 | NA | | | NA | land | Edward | NA | Scotia | Brunswick | | ⋯ | chewan | NA | | NA | Columbia | NA | Territory | Territories | NA | NA |
\n",
"\t2 | NA | | | NA | | Island | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\t3 | NA | | 2 | NA | 3 | 4 | NA | 5 | 6 | 7 | ⋯ | 10 | NA | 11 | NA | 12 | NA | 13 | 14 | NA | NA |
\n",
"\t4 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\t5 | NA | 1976 | 22,992,604 | NA | 557,725 | 118,229 | NA | 828,571 | 677,250 | 6,234,445 | ⋯ | 921,323 | NA | 1,838,037 | NA | 2,466,608 | NA | 21,836 | 42,609 | NA | NA |
\n",
"\t6 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 6 × 23\n",
"\\begin{tabular}{r|lllllllllllllllllllll}\n",
" & X & Year & Canada & X.1 & Newfound. & Prince & X.2 & Nova & New & Quebec & ⋯ & Saskat. & X.4 & Alberta & X.5 & British & X.6 & Yukon & Northwest & X.7 & X.8\\\\\n",
" & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n",
"\\hline\n",
"\t1 & NA & & & NA & land & Edward & NA & Scotia & Brunswick & & ⋯ & chewan & NA & & NA & Columbia & NA & Territory & Territories & NA & NA\\\\\n",
"\t2 & NA & & & NA & & Island & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\t3 & NA & & 2 & NA & 3 & 4 & NA & 5 & 6 & 7 & ⋯ & 10 & NA & 11 & NA & 12 & NA & 13 & 14 & NA & NA\\\\\n",
"\t4 & NA & & & NA & & & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\t5 & NA & 1976 & 22,992,604 & NA & 557,725 & 118,229 & NA & 828,571 & 677,250 & 6,234,445 & ⋯ & 921,323 & NA & 1,838,037 & NA & 2,466,608 & NA & 21,836 & 42,609 & NA & NA\\\\\n",
"\t6 & NA & & & NA & & & NA & & & & ⋯ & & NA & & NA & & NA & & & NA & NA\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 6 × 23\n",
"\n",
"| | X <int> | Year <chr> | Canada <chr> | X.1 <int> | Newfound. <chr> | Prince <chr> | X.2 <int> | Nova <chr> | New <chr> | Quebec <chr> | ⋯ ⋯ | Saskat. <chr> | X.4 <int> | Alberta <chr> | X.5 <int> | British <chr> | X.6 <int> | Yukon <chr> | Northwest <chr> | X.7 <int> | X.8 <lgl> |\n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 1 | NA | | | NA | land | Edward | NA | Scotia | Brunswick | | ⋯ | chewan | NA | | NA | Columbia | NA | Territory | Territories | NA | NA |\n",
"| 2 | NA | | | NA | | Island | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"| 3 | NA | | 2 | NA | 3 | 4 | NA | 5 | 6 | 7 | ⋯ | 10 | NA | 11 | NA | 12 | NA | 13 | 14 | NA | NA |\n",
"| 4 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"| 5 | NA | 1976 | 22,992,604 | NA | 557,725 | 118,229 | NA | 828,571 | 677,250 | 6,234,445 | ⋯ | 921,323 | NA | 1,838,037 | NA | 2,466,608 | NA | 21,836 | 42,609 | NA | NA |\n",
"| 6 | NA | | | NA | | | NA | | | | ⋯ | | NA | | NA | | NA | | | NA | NA |\n",
"\n"
],
"text/plain": [
" X Year Canada X.1 Newfound. Prince X.2 Nova New Quebec ⋯\n",
"1 NA NA land Edward NA Scotia Brunswick ⋯\n",
"2 NA NA Island NA ⋯\n",
"3 NA 2 NA 3 4 NA 5 6 7 ⋯\n",
"4 NA NA NA ⋯\n",
"5 NA 1976 22,992,604 NA 557,725 118,229 NA 828,571 677,250 6,234,445 ⋯\n",
"6 NA NA NA ⋯\n",
" Saskat. X.4 Alberta X.5 British X.6 Yukon Northwest X.7 X.8\n",
"1 chewan NA NA Columbia NA Territory Territories NA NA \n",
"2 NA NA NA NA NA \n",
"3 10 NA 11 NA 12 NA 13 14 NA NA \n",
"4 NA NA NA NA NA \n",
"5 921,323 NA 1,838,037 NA 2,466,608 NA 21,836 42,609 NA NA \n",
"6 NA NA NA NA NA "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_old = read.csv(\"https://www150.statcan.gc.ca/n1/en/pub/11-516-x/sectiona/A2_14-eng.csv?st=L7vSnqio\",\n",
" skip = 2)\n",
"head(data_old)"
]
},
{
"cell_type": "markdown",
"id": "02153393",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Here, there is the further issue that to make things legible, the table authors used 3 rows (from 2 to 4) to encode for long names (*e.g.*, Prince Edward Island is written over 3 rows). Note, however, that `read.csv` has rightly picked up on the first row being the column names"
]
},
{
"cell_type": "markdown",
"id": "bda07fcf",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Because we are only interested in the total population of the country and the year, let us simply get rid of the first 4 rows and of all columns except the second (**Year**) and third (**Canada**)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "34a4f9c6",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 25 × 2\n",
"\n",
"\t | Year | Canada |
\n",
"\t | <chr> | <chr> |
\n",
"\n",
"\n",
"\t5 | 1976 | 22,992,604 |
\n",
"\t6 | | |
\n",
"\t7 | 1971 | 21,568,311 |
\n",
"\t8 | 1966 | 20,014,880 |
\n",
"\t9 | 1961 | 18,238,247 |
\n",
"\t10 | 1956 | 16,080,791 |
\n",
"\t11 | 1951 | 14,009,429 |
\n",
"\t12 | | |
\n",
"\t13 | 1941 | 11,506,655 |
\n",
"\t14 | 1931 | 10,376,786 |
\n",
"\t15 | 1921 | 8,787,949 |
\n",
"\t16 | 1911 | 7,206,643 |
\n",
"\t17 | 1901 | 5,371,315 |
\n",
"\t18 | | |
\n",
"\t19 | 1891 | 4,833,239 |
\n",
"\t20 | 1881 | 4,324,810 |
\n",
"\t21 | 1871 | 3,689,257 |
\n",
"\t22 | 1861 | 3,229,633 |
\n",
"\t23 | 1851 | 2,436,297 |
\n",
"\t24 | | |
\n",
"\t25 | Includes 485 members of the Royal Canadian Navy whose province of residence is not known. | |
\n",
"\t26 | Included with Northwest Territories. | |
\n",
"\t27 | For the discussion of the ambiguities and under-enumeration contained in these figures consult the notes to series A2-14 in original volume. For completeness of enumeration in censuses of 1961 and later years, | |
\n",
"\t28 | see notes to series A15-53. | |
\n",
"\t29 | 1848 figure. | |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 25 × 2\n",
"\\begin{tabular}{r|ll}\n",
" & Year & Canada\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t5 & 1976 & 22,992,604\\\\\n",
"\t6 & & \\\\\n",
"\t7 & 1971 & 21,568,311\\\\\n",
"\t8 & 1966 & 20,014,880\\\\\n",
"\t9 & 1961 & 18,238,247\\\\\n",
"\t10 & 1956 & 16,080,791\\\\\n",
"\t11 & 1951 & 14,009,429\\\\\n",
"\t12 & & \\\\\n",
"\t13 & 1941 & 11,506,655\\\\\n",
"\t14 & 1931 & 10,376,786\\\\\n",
"\t15 & 1921 & 8,787,949 \\\\\n",
"\t16 & 1911 & 7,206,643 \\\\\n",
"\t17 & 1901 & 5,371,315 \\\\\n",
"\t18 & & \\\\\n",
"\t19 & 1891 & 4,833,239 \\\\\n",
"\t20 & 1881 & 4,324,810 \\\\\n",
"\t21 & 1871 & 3,689,257 \\\\\n",
"\t22 & 1861 & 3,229,633 \\\\\n",
"\t23 & 1851 & 2,436,297 \\\\\n",
"\t24 & & \\\\\n",
"\t25 & Includes 485 members of the Royal Canadian Navy whose province of residence is not known. & \\\\\n",
"\t26 & Included with Northwest Territories. & \\\\\n",
"\t27 & For the discussion of the ambiguities and under-enumeration contained in these figures consult the notes to series A2-14 in original volume. For completeness of enumeration in censuses of 1961 and later years, & \\\\\n",
"\t28 & see notes to series A15-53. & \\\\\n",
"\t29 & 1848 figure. & \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 25 × 2\n",
"\n",
"| | Year <chr> | Canada <chr> |\n",
"|---|---|---|\n",
"| 5 | 1976 | 22,992,604 |\n",
"| 6 | | |\n",
"| 7 | 1971 | 21,568,311 |\n",
"| 8 | 1966 | 20,014,880 |\n",
"| 9 | 1961 | 18,238,247 |\n",
"| 10 | 1956 | 16,080,791 |\n",
"| 11 | 1951 | 14,009,429 |\n",
"| 12 | | |\n",
"| 13 | 1941 | 11,506,655 |\n",
"| 14 | 1931 | 10,376,786 |\n",
"| 15 | 1921 | 8,787,949 |\n",
"| 16 | 1911 | 7,206,643 |\n",
"| 17 | 1901 | 5,371,315 |\n",
"| 18 | | |\n",
"| 19 | 1891 | 4,833,239 |\n",
"| 20 | 1881 | 4,324,810 |\n",
"| 21 | 1871 | 3,689,257 |\n",
"| 22 | 1861 | 3,229,633 |\n",
"| 23 | 1851 | 2,436,297 |\n",
"| 24 | | |\n",
"| 25 | Includes 485 members of the Royal Canadian Navy whose province of residence is not known. | |\n",
"| 26 | Included with Northwest Territories. | |\n",
"| 27 | For the discussion of the ambiguities and under-enumeration contained in these figures consult the notes to series A2-14 in original volume. For completeness of enumeration in censuses of 1961 and later years, | |\n",
"| 28 | see notes to series A15-53. | |\n",
"| 29 | 1848 figure. | |\n",
"\n"
],
"text/plain": [
" Year \n",
"5 1976 \n",
"6 \n",
"7 1971 \n",
"8 1966 \n",
"9 1961 \n",
"10 1956 \n",
"11 1951 \n",
"12 \n",
"13 1941 \n",
"14 1931 \n",
"15 1921 \n",
"16 1911 \n",
"17 1901 \n",
"18 \n",
"19 1891 \n",
"20 1881 \n",
"21 1871 \n",
"22 1861 \n",
"23 1851 \n",
"24 \n",
"25 Includes 485 members of the Royal Canadian Navy whose province of residence is not known. \n",
"26 Included with Northwest Territories. \n",
"27 For the discussion of the ambiguities and under-enumeration contained in these figures consult the notes to series A2-14 in original volume. For completeness of enumeration in censuses of 1961 and later years,\n",
"28 see notes to series A15-53. \n",
"29 1848 figure. \n",
" Canada \n",
"5 22,992,604\n",
"6 \n",
"7 21,568,311\n",
"8 20,014,880\n",
"9 18,238,247\n",
"10 16,080,791\n",
"11 14,009,429\n",
"12 \n",
"13 11,506,655\n",
"14 10,376,786\n",
"15 8,787,949 \n",
"16 7,206,643 \n",
"17 5,371,315 \n",
"18 \n",
"19 4,833,239 \n",
"20 4,324,810 \n",
"21 3,689,257 \n",
"22 3,229,633 \n",
"23 2,436,297 \n",
"24 \n",
"25 \n",
"26 \n",
"27 \n",
"28 \n",
"29 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_old = data_old[5:dim(data_old)[1], 2:3]\n",
"data_old"
]
},
{
"cell_type": "markdown",
"id": "3c2c7b61",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Still not perfect: \n",
"1. there are some empty rows;\n",
"2. the last few rows need to be removed too, they contain remarks about the data;\n",
"3. the population counts contain commas;\n",
"4. it would be better if years were increasing.\n",
"\n",
"Let us fix these issues."
]
},
{
"cell_type": "markdown",
"id": "03115ef9",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"For 1 and 2, this is easy: remark that the **Canada** column is empty for both issues. Now remark as well that below **Canada** (and **Year**, for that matter), it is written **< chr >**. This means that entries in the column are `characters`. Looking for empty content therefore means looking for empty character chains. "
]
},
{
"cell_type": "markdown",
"id": "b5baf3ec",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"- So to fix 1 and 2, we keep the rows where **Canada** does not equal the empty chain.\n",
"\n",
"- To get rid of commas, we just need to substitute an empty chain for \",\".\n",
" \n",
"- To sort, we find the order for the years and apply it to the entire table.\n",
" \n",
"- Finally, as remarked above, for now, both the year and the population are considered as character chains. This means that in order to plot anything, we will have to indicate that these are numbers, not characters."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "96a251be",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "slide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 16 × 2\n",
"\n",
"\t | Year | Canada |
\n",
"\t | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\t23 | 1851 | 2436297 |
\n",
"\t22 | 1861 | 3229633 |
\n",
"\t21 | 1871 | 3689257 |
\n",
"\t20 | 1881 | 4324810 |
\n",
"\t19 | 1891 | 4833239 |
\n",
"\t17 | 1901 | 5371315 |
\n",
"\t16 | 1911 | 7206643 |
\n",
"\t15 | 1921 | 8787949 |
\n",
"\t14 | 1931 | 10376786 |
\n",
"\t13 | 1941 | 11506655 |
\n",
"\t11 | 1951 | 14009429 |
\n",
"\t10 | 1956 | 16080791 |
\n",
"\t9 | 1961 | 18238247 |
\n",
"\t8 | 1966 | 20014880 |
\n",
"\t7 | 1971 | 21568311 |
\n",
"\t5 | 1976 | 22992604 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 16 × 2\n",
"\\begin{tabular}{r|ll}\n",
" & Year & Canada\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t23 & 1851 & 2436297\\\\\n",
"\t22 & 1861 & 3229633\\\\\n",
"\t21 & 1871 & 3689257\\\\\n",
"\t20 & 1881 & 4324810\\\\\n",
"\t19 & 1891 & 4833239\\\\\n",
"\t17 & 1901 & 5371315\\\\\n",
"\t16 & 1911 & 7206643\\\\\n",
"\t15 & 1921 & 8787949\\\\\n",
"\t14 & 1931 & 10376786\\\\\n",
"\t13 & 1941 & 11506655\\\\\n",
"\t11 & 1951 & 14009429\\\\\n",
"\t10 & 1956 & 16080791\\\\\n",
"\t9 & 1961 & 18238247\\\\\n",
"\t8 & 1966 & 20014880\\\\\n",
"\t7 & 1971 & 21568311\\\\\n",
"\t5 & 1976 & 22992604\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 16 × 2\n",
"\n",
"| | Year <dbl> | Canada <dbl> |\n",
"|---|---|---|\n",
"| 23 | 1851 | 2436297 |\n",
"| 22 | 1861 | 3229633 |\n",
"| 21 | 1871 | 3689257 |\n",
"| 20 | 1881 | 4324810 |\n",
"| 19 | 1891 | 4833239 |\n",
"| 17 | 1901 | 5371315 |\n",
"| 16 | 1911 | 7206643 |\n",
"| 15 | 1921 | 8787949 |\n",
"| 14 | 1931 | 10376786 |\n",
"| 13 | 1941 | 11506655 |\n",
"| 11 | 1951 | 14009429 |\n",
"| 10 | 1956 | 16080791 |\n",
"| 9 | 1961 | 18238247 |\n",
"| 8 | 1966 | 20014880 |\n",
"| 7 | 1971 | 21568311 |\n",
"| 5 | 1976 | 22992604 |\n",
"\n"
],
"text/plain": [
" Year Canada \n",
"23 1851 2436297\n",
"22 1861 3229633\n",
"21 1871 3689257\n",
"20 1881 4324810\n",
"19 1891 4833239\n",
"17 1901 5371315\n",
"16 1911 7206643\n",
"15 1921 8787949\n",
"14 1931 10376786\n",
"13 1941 11506655\n",
"11 1951 14009429\n",
"10 1956 16080791\n",
"9 1961 18238247\n",
"8 1966 20014880\n",
"7 1971 21568311\n",
"5 1976 22992604"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_old = data_old[which(data_old$Canada != \"\"),]\n",
"data_old$Canada = gsub(\",\", \"\", data_old$Canada)\n",
"order_data = order(data_old$Year)\n",
"data_old = data_old[order_data,]\n",
"data_old$Year = as.numeric(data_old$Year)\n",
"data_old$Canada = as.numeric(data_old$Canada)\n",
"data_old"
]
},
{
"cell_type": "markdown",
"id": "ac38ad95",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Row numbers are a little weird, so let us fix this."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "f758e698",
"metadata": {
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 16 × 2\n",
"\n",
"\t | Year | Canada |
\n",
"\t | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\t1 | 1851 | 2436297 |
\n",
"\t2 | 1861 | 3229633 |
\n",
"\t3 | 1871 | 3689257 |
\n",
"\t4 | 1881 | 4324810 |
\n",
"\t5 | 1891 | 4833239 |
\n",
"\t6 | 1901 | 5371315 |
\n",
"\t7 | 1911 | 7206643 |
\n",
"\t8 | 1921 | 8787949 |
\n",
"\t9 | 1931 | 10376786 |
\n",
"\t10 | 1941 | 11506655 |
\n",
"\t11 | 1951 | 14009429 |
\n",
"\t12 | 1956 | 16080791 |
\n",
"\t13 | 1961 | 18238247 |
\n",
"\t14 | 1966 | 20014880 |
\n",
"\t15 | 1971 | 21568311 |
\n",
"\t16 | 1976 | 22992604 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 16 × 2\n",
"\\begin{tabular}{r|ll}\n",
" & Year & Canada\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t1 & 1851 & 2436297\\\\\n",
"\t2 & 1861 & 3229633\\\\\n",
"\t3 & 1871 & 3689257\\\\\n",
"\t4 & 1881 & 4324810\\\\\n",
"\t5 & 1891 & 4833239\\\\\n",
"\t6 & 1901 & 5371315\\\\\n",
"\t7 & 1911 & 7206643\\\\\n",
"\t8 & 1921 & 8787949\\\\\n",
"\t9 & 1931 & 10376786\\\\\n",
"\t10 & 1941 & 11506655\\\\\n",
"\t11 & 1951 & 14009429\\\\\n",
"\t12 & 1956 & 16080791\\\\\n",
"\t13 & 1961 & 18238247\\\\\n",
"\t14 & 1966 & 20014880\\\\\n",
"\t15 & 1971 & 21568311\\\\\n",
"\t16 & 1976 & 22992604\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 16 × 2\n",
"\n",
"| | Year <dbl> | Canada <dbl> |\n",
"|---|---|---|\n",
"| 1 | 1851 | 2436297 |\n",
"| 2 | 1861 | 3229633 |\n",
"| 3 | 1871 | 3689257 |\n",
"| 4 | 1881 | 4324810 |\n",
"| 5 | 1891 | 4833239 |\n",
"| 6 | 1901 | 5371315 |\n",
"| 7 | 1911 | 7206643 |\n",
"| 8 | 1921 | 8787949 |\n",
"| 9 | 1931 | 10376786 |\n",
"| 10 | 1941 | 11506655 |\n",
"| 11 | 1951 | 14009429 |\n",
"| 12 | 1956 | 16080791 |\n",
"| 13 | 1961 | 18238247 |\n",
"| 14 | 1966 | 20014880 |\n",
"| 15 | 1971 | 21568311 |\n",
"| 16 | 1976 | 22992604 |\n",
"\n"
],
"text/plain": [
" Year Canada \n",
"1 1851 2436297\n",
"2 1861 3229633\n",
"3 1871 3689257\n",
"4 1881 4324810\n",
"5 1891 4833239\n",
"6 1901 5371315\n",
"7 1911 7206643\n",
"8 1921 8787949\n",
"9 1931 10376786\n",
"10 1941 11506655\n",
"11 1951 14009429\n",
"12 1956 16080791\n",
"13 1961 18238247\n",
"14 1966 20014880\n",
"15 1971 21568311\n",
"16 1976 22992604"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"row.names(data_old) = 1:dim(data_old)[1]\n",
"data_old"
]
},
{
"cell_type": "markdown",
"id": "b27f3803",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Well, that looks about right! Let's see what this looks like in a graph."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "28fc0266",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "subslide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"plot(data_old$Year, data_old$Canada,\n",
" type = \"b\", lwd = 2,\n",
" xlab = \"Year\", ylab = \"Population\")"
]
},
{
"cell_type": "markdown",
"id": "3a1dc6ac",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"But wait, this is only to 1976..! Looking around, we find another table [here](https://www12.statcan.gc.ca/census-recensement/2011/dp-pd/vc-rv/index.cfm?LANG=ENG&VIEW=D&TOPIC_ID=1&GEOCODE=01&CFORMAT=html). There's a download csv link in there, let us see where this leads us. The table is 720KB, so surely there must be more to this than just the population. To get a sense of that, we dump the whole data.frame, not just its head."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "462e8627",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 9960 × 5\n",
"\n",
"\tGEOGRAPHY.NAME | CHARACTERISTIC | YEAR.S. | TOTAL | FLAG_TOTAL |
\n",
"\t<chr> | <chr> | <chr> | <dbl> | <chr> |
\n",
"\n",
"\n",
"\tCanada | Population (in thousands) | 1956 | 16081.0 | |
\n",
"\tCanada | Population (in thousands) | 1961 | 18238.0 | |
\n",
"\tCanada | Population (in thousands) | 1966 | 20015.0 | |
\n",
"\tCanada | Population (in thousands) | 1971 | 21568.0 | |
\n",
"\tCanada | Population (in thousands) | 1976 | 22993.0 | |
\n",
"\tCanada | Population (in thousands) | 1981 | 24343.0 | |
\n",
"\tCanada | Population (in thousands) | 1986 | 25309.0 | |
\n",
"\tCanada | Population (in thousands) | 1991 | 27297.0 | |
\n",
"\tCanada | Population (in thousands) | 1996 | 28847.0 | |
\n",
"\tCanada | Population (in thousands) | 2001 | 30007.0 | |
\n",
"\tCanada | Population (in thousands) | 2006 | 31613.0 | |
\n",
"\tCanada | Population (in thousands) | 2011 | 33477.0 | |
\n",
"\tCanada | Population - % change | 1956 to 1961 | 13.4 | |
\n",
"\tCanada | Population - % change | 1961 to 1966 | 9.7 | |
\n",
"\tCanada | Population - % change | 1966 to 1971 | 7.8 | |
\n",
"\tCanada | Population - % change | 1971 to 1976 | 6.6 | |
\n",
"\tCanada | Population - % change | 1976 to 1981 | 5.9 | |
\n",
"\tCanada | Population - % change | 1981 to 1986 | 4.0 | |
\n",
"\tCanada | Population - % change | 1986 to 1991 | 7.9 | |
\n",
"\tCanada | Population - % change | 1991 to 1996 | 5.7 | |
\n",
"\tCanada | Population - % change | 1996 to 2001 | 4.0 | |
\n",
"\tCanada | Population - % change | 2001 to 2006 | 5.4 | |
\n",
"\tCanada | Population - % change | 2006 to 2011 | 5.9 | |
\n",
"\tCanada | Total private dwellings occupied by usual residents | 1996 | 10820050.0 | |
\n",
"\tCanada | Total private dwellings occupied by usual residents | 2001 | 11562975.0 | |
\n",
"\tCanada | Total private dwellings occupied by usual residents | 2006 | 12435520.0 | |
\n",
"\tCanada | Total private dwellings occupied by usual residents | 2011 | 13320614.0 | |
\n",
"\tCanada | % of the population aged 0 to 14 years | 1921 | 34.4 | |
\n",
"\tCanada | % of the population aged 0 to 14 years | 1931 | 31.6 | |
\n",
"\tCanada | % of the population aged 0 to 14 years | 1941 | 27.8 | |
\n",
"\t⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
\n",
"\tQuebec | Population share | 2001 | 24.1 | |
\n",
"\tQuebec | Population share | 2011 | 23.6 | |
\n",
"\tOntario | Population share | 1951 | 32.8 | |
\n",
"\tOntario | Population share | 1961 | 34.2 | |
\n",
"\tOntario | Population share | 1971 | 35.7 | |
\n",
"\tOntario | Population share | 1981 | 35.4 | |
\n",
"\tOntario | Population share | 1991 | 36.9 | |
\n",
"\tOntario | Population share | 2001 | 38.0 | |
\n",
"\tOntario | Population share | 2011 | 38.4 | |
\n",
"\tPrairie Provinces | Population share | 1951 | 18.2 | |
\n",
"\tPrairie Provinces | Population share | 1961 | 17.4 | |
\n",
"\tPrairie Provinces | Population share | 1971 | 16.4 | |
\n",
"\tPrairie Provinces | Population share | 1981 | 17.4 | |
\n",
"\tPrairie Provinces | Population share | 1991 | 17.0 | |
\n",
"\tPrairie Provinces | Population share | 2001 | 16.9 | |
\n",
"\tPrairie Provinces | Population share | 2011 | 17.6 | |
\n",
"\tBritish Columbia | Population share | 1951 | 8.3 | |
\n",
"\tBritish Columbia | Population share | 1961 | 8.9 | |
\n",
"\tBritish Columbia | Population share | 1971 | 10.1 | |
\n",
"\tBritish Columbia | Population share | 1981 | 11.3 | |
\n",
"\tBritish Columbia | Population share | 1991 | 12.0 | |
\n",
"\tBritish Columbia | Population share | 2001 | 13.0 | |
\n",
"\tBritish Columbia | Population share | 2011 | 13.1 | |
\n",
"\tTerritories | Population share | 1951 | 0.2 | |
\n",
"\tTerritories | Population share | 1961 | 0.2 | |
\n",
"\tTerritories | Population share | 1971 | 0.2 | |
\n",
"\tTerritories | Population share | 1981 | 0.3 | |
\n",
"\tTerritories | Population share | 1991 | 0.3 | |
\n",
"\tTerritories | Population share | 2001 | 0.3 | |
\n",
"\tTerritories | Population share | 2011 | 0.3 | |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 9960 × 5\n",
"\\begin{tabular}{lllll}\n",
" GEOGRAPHY.NAME & CHARACTERISTIC & YEAR.S. & TOTAL & FLAG\\_TOTAL\\\\\n",
" & & & & \\\\\n",
"\\hline\n",
"\t Canada & Population (in thousands) & 1956 & 16081.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1961 & 18238.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1966 & 20015.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1971 & 21568.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1976 & 22993.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1981 & 24343.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1986 & 25309.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1991 & 27297.0 & \\\\\n",
"\t Canada & Population (in thousands) & 1996 & 28847.0 & \\\\\n",
"\t Canada & Population (in thousands) & 2001 & 30007.0 & \\\\\n",
"\t Canada & Population (in thousands) & 2006 & 31613.0 & \\\\\n",
"\t Canada & Population (in thousands) & 2011 & 33477.0 & \\\\\n",
"\t Canada & Population - \\% change & 1956 to 1961 & 13.4 & \\\\\n",
"\t Canada & Population - \\% change & 1961 to 1966 & 9.7 & \\\\\n",
"\t Canada & Population - \\% change & 1966 to 1971 & 7.8 & \\\\\n",
"\t Canada & Population - \\% change & 1971 to 1976 & 6.6 & \\\\\n",
"\t Canada & Population - \\% change & 1976 to 1981 & 5.9 & \\\\\n",
"\t Canada & Population - \\% change & 1981 to 1986 & 4.0 & \\\\\n",
"\t Canada & Population - \\% change & 1986 to 1991 & 7.9 & \\\\\n",
"\t Canada & Population - \\% change & 1991 to 1996 & 5.7 & \\\\\n",
"\t Canada & Population - \\% change & 1996 to 2001 & 4.0 & \\\\\n",
"\t Canada & Population - \\% change & 2001 to 2006 & 5.4 & \\\\\n",
"\t Canada & Population - \\% change & 2006 to 2011 & 5.9 & \\\\\n",
"\t Canada & Total private dwellings occupied by usual residents & 1996 & 10820050.0 & \\\\\n",
"\t Canada & Total private dwellings occupied by usual residents & 2001 & 11562975.0 & \\\\\n",
"\t Canada & Total private dwellings occupied by usual residents & 2006 & 12435520.0 & \\\\\n",
"\t Canada & Total private dwellings occupied by usual residents & 2011 & 13320614.0 & \\\\\n",
"\t Canada & \\% of the population aged 0 to 14 years & 1921 & 34.4 & \\\\\n",
"\t Canada & \\% of the population aged 0 to 14 years & 1931 & 31.6 & \\\\\n",
"\t Canada & \\% of the population aged 0 to 14 years & 1941 & 27.8 & \\\\\n",
"\t ⋮ & ⋮ & ⋮ & ⋮ & ⋮\\\\\n",
"\t Quebec & Population share & 2001 & 24.1 & \\\\\n",
"\t Quebec & Population share & 2011 & 23.6 & \\\\\n",
"\t Ontario & Population share & 1951 & 32.8 & \\\\\n",
"\t Ontario & Population share & 1961 & 34.2 & \\\\\n",
"\t Ontario & Population share & 1971 & 35.7 & \\\\\n",
"\t Ontario & Population share & 1981 & 35.4 & \\\\\n",
"\t Ontario & Population share & 1991 & 36.9 & \\\\\n",
"\t Ontario & Population share & 2001 & 38.0 & \\\\\n",
"\t Ontario & Population share & 2011 & 38.4 & \\\\\n",
"\t Prairie Provinces & Population share & 1951 & 18.2 & \\\\\n",
"\t Prairie Provinces & Population share & 1961 & 17.4 & \\\\\n",
"\t Prairie Provinces & Population share & 1971 & 16.4 & \\\\\n",
"\t Prairie Provinces & Population share & 1981 & 17.4 & \\\\\n",
"\t Prairie Provinces & Population share & 1991 & 17.0 & \\\\\n",
"\t Prairie Provinces & Population share & 2001 & 16.9 & \\\\\n",
"\t Prairie Provinces & Population share & 2011 & 17.6 & \\\\\n",
"\t British Columbia & Population share & 1951 & 8.3 & \\\\\n",
"\t British Columbia & Population share & 1961 & 8.9 & \\\\\n",
"\t British Columbia & Population share & 1971 & 10.1 & \\\\\n",
"\t British Columbia & Population share & 1981 & 11.3 & \\\\\n",
"\t British Columbia & Population share & 1991 & 12.0 & \\\\\n",
"\t British Columbia & Population share & 2001 & 13.0 & \\\\\n",
"\t British Columbia & Population share & 2011 & 13.1 & \\\\\n",
"\t Territories & Population share & 1951 & 0.2 & \\\\\n",
"\t Territories & Population share & 1961 & 0.2 & \\\\\n",
"\t Territories & Population share & 1971 & 0.2 & \\\\\n",
"\t Territories & Population share & 1981 & 0.3 & \\\\\n",
"\t Territories & Population share & 1991 & 0.3 & \\\\\n",
"\t Territories & Population share & 2001 & 0.3 & \\\\\n",
"\t Territories & Population share & 2011 & 0.3 & \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 9960 × 5\n",
"\n",
"| GEOGRAPHY.NAME <chr> | CHARACTERISTIC <chr> | YEAR.S. <chr> | TOTAL <dbl> | FLAG_TOTAL <chr> |\n",
"|---|---|---|---|---|\n",
"| Canada | Population (in thousands) | 1956 | 16081.0 | |\n",
"| Canada | Population (in thousands) | 1961 | 18238.0 | |\n",
"| Canada | Population (in thousands) | 1966 | 20015.0 | |\n",
"| Canada | Population (in thousands) | 1971 | 21568.0 | |\n",
"| Canada | Population (in thousands) | 1976 | 22993.0 | |\n",
"| Canada | Population (in thousands) | 1981 | 24343.0 | |\n",
"| Canada | Population (in thousands) | 1986 | 25309.0 | |\n",
"| Canada | Population (in thousands) | 1991 | 27297.0 | |\n",
"| Canada | Population (in thousands) | 1996 | 28847.0 | |\n",
"| Canada | Population (in thousands) | 2001 | 30007.0 | |\n",
"| Canada | Population (in thousands) | 2006 | 31613.0 | |\n",
"| Canada | Population (in thousands) | 2011 | 33477.0 | |\n",
"| Canada | Population - % change | 1956 to 1961 | 13.4 | |\n",
"| Canada | Population - % change | 1961 to 1966 | 9.7 | |\n",
"| Canada | Population - % change | 1966 to 1971 | 7.8 | |\n",
"| Canada | Population - % change | 1971 to 1976 | 6.6 | |\n",
"| Canada | Population - % change | 1976 to 1981 | 5.9 | |\n",
"| Canada | Population - % change | 1981 to 1986 | 4.0 | |\n",
"| Canada | Population - % change | 1986 to 1991 | 7.9 | |\n",
"| Canada | Population - % change | 1991 to 1996 | 5.7 | |\n",
"| Canada | Population - % change | 1996 to 2001 | 4.0 | |\n",
"| Canada | Population - % change | 2001 to 2006 | 5.4 | |\n",
"| Canada | Population - % change | 2006 to 2011 | 5.9 | |\n",
"| Canada | Total private dwellings occupied by usual residents | 1996 | 10820050.0 | |\n",
"| Canada | Total private dwellings occupied by usual residents | 2001 | 11562975.0 | |\n",
"| Canada | Total private dwellings occupied by usual residents | 2006 | 12435520.0 | |\n",
"| Canada | Total private dwellings occupied by usual residents | 2011 | 13320614.0 | |\n",
"| Canada | % of the population aged 0 to 14 years | 1921 | 34.4 | |\n",
"| Canada | % of the population aged 0 to 14 years | 1931 | 31.6 | |\n",
"| Canada | % of the population aged 0 to 14 years | 1941 | 27.8 | |\n",
"| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |\n",
"| Quebec | Population share | 2001 | 24.1 | |\n",
"| Quebec | Population share | 2011 | 23.6 | |\n",
"| Ontario | Population share | 1951 | 32.8 | |\n",
"| Ontario | Population share | 1961 | 34.2 | |\n",
"| Ontario | Population share | 1971 | 35.7 | |\n",
"| Ontario | Population share | 1981 | 35.4 | |\n",
"| Ontario | Population share | 1991 | 36.9 | |\n",
"| Ontario | Population share | 2001 | 38.0 | |\n",
"| Ontario | Population share | 2011 | 38.4 | |\n",
"| Prairie Provinces | Population share | 1951 | 18.2 | |\n",
"| Prairie Provinces | Population share | 1961 | 17.4 | |\n",
"| Prairie Provinces | Population share | 1971 | 16.4 | |\n",
"| Prairie Provinces | Population share | 1981 | 17.4 | |\n",
"| Prairie Provinces | Population share | 1991 | 17.0 | |\n",
"| Prairie Provinces | Population share | 2001 | 16.9 | |\n",
"| Prairie Provinces | Population share | 2011 | 17.6 | |\n",
"| British Columbia | Population share | 1951 | 8.3 | |\n",
"| British Columbia | Population share | 1961 | 8.9 | |\n",
"| British Columbia | Population share | 1971 | 10.1 | |\n",
"| British Columbia | Population share | 1981 | 11.3 | |\n",
"| British Columbia | Population share | 1991 | 12.0 | |\n",
"| British Columbia | Population share | 2001 | 13.0 | |\n",
"| British Columbia | Population share | 2011 | 13.1 | |\n",
"| Territories | Population share | 1951 | 0.2 | |\n",
"| Territories | Population share | 1961 | 0.2 | |\n",
"| Territories | Population share | 1971 | 0.2 | |\n",
"| Territories | Population share | 1981 | 0.3 | |\n",
"| Territories | Population share | 1991 | 0.3 | |\n",
"| Territories | Population share | 2001 | 0.3 | |\n",
"| Territories | Population share | 2011 | 0.3 | |\n",
"\n"
],
"text/plain": [
" GEOGRAPHY.NAME CHARACTERISTIC \n",
"1 Canada Population (in thousands) \n",
"2 Canada Population (in thousands) \n",
"3 Canada Population (in thousands) \n",
"4 Canada Population (in thousands) \n",
"5 Canada Population (in thousands) \n",
"6 Canada Population (in thousands) \n",
"7 Canada Population (in thousands) \n",
"8 Canada Population (in thousands) \n",
"9 Canada Population (in thousands) \n",
"10 Canada Population (in thousands) \n",
"11 Canada Population (in thousands) \n",
"12 Canada Population (in thousands) \n",
"13 Canada Population - % change \n",
"14 Canada Population - % change \n",
"15 Canada Population - % change \n",
"16 Canada Population - % change \n",
"17 Canada Population - % change \n",
"18 Canada Population - % change \n",
"19 Canada Population - % change \n",
"20 Canada Population - % change \n",
"21 Canada Population - % change \n",
"22 Canada Population - % change \n",
"23 Canada Population - % change \n",
"24 Canada Total private dwellings occupied by usual residents\n",
"25 Canada Total private dwellings occupied by usual residents\n",
"26 Canada Total private dwellings occupied by usual residents\n",
"27 Canada Total private dwellings occupied by usual residents\n",
"28 Canada % of the population aged 0 to 14 years \n",
"29 Canada % of the population aged 0 to 14 years \n",
"30 Canada % of the population aged 0 to 14 years \n",
"⋮ ⋮ ⋮ \n",
"9931 Quebec Population share \n",
"9932 Quebec Population share \n",
"9933 Ontario Population share \n",
"9934 Ontario Population share \n",
"9935 Ontario Population share \n",
"9936 Ontario Population share \n",
"9937 Ontario Population share \n",
"9938 Ontario Population share \n",
"9939 Ontario Population share \n",
"9940 Prairie Provinces Population share \n",
"9941 Prairie Provinces Population share \n",
"9942 Prairie Provinces Population share \n",
"9943 Prairie Provinces Population share \n",
"9944 Prairie Provinces Population share \n",
"9945 Prairie Provinces Population share \n",
"9946 Prairie Provinces Population share \n",
"9947 British Columbia Population share \n",
"9948 British Columbia Population share \n",
"9949 British Columbia Population share \n",
"9950 British Columbia Population share \n",
"9951 British Columbia Population share \n",
"9952 British Columbia Population share \n",
"9953 British Columbia Population share \n",
"9954 Territories Population share \n",
"9955 Territories Population share \n",
"9956 Territories Population share \n",
"9957 Territories Population share \n",
"9958 Territories Population share \n",
"9959 Territories Population share \n",
"9960 Territories Population share \n",
" YEAR.S. TOTAL FLAG_TOTAL\n",
"1 1956 16081.0 \n",
"2 1961 18238.0 \n",
"3 1966 20015.0 \n",
"4 1971 21568.0 \n",
"5 1976 22993.0 \n",
"6 1981 24343.0 \n",
"7 1986 25309.0 \n",
"8 1991 27297.0 \n",
"9 1996 28847.0 \n",
"10 2001 30007.0 \n",
"11 2006 31613.0 \n",
"12 2011 33477.0 \n",
"13 1956 to 1961 13.4 \n",
"14 1961 to 1966 9.7 \n",
"15 1966 to 1971 7.8 \n",
"16 1971 to 1976 6.6 \n",
"17 1976 to 1981 5.9 \n",
"18 1981 to 1986 4.0 \n",
"19 1986 to 1991 7.9 \n",
"20 1991 to 1996 5.7 \n",
"21 1996 to 2001 4.0 \n",
"22 2001 to 2006 5.4 \n",
"23 2006 to 2011 5.9 \n",
"24 1996 10820050.0 \n",
"25 2001 11562975.0 \n",
"26 2006 12435520.0 \n",
"27 2011 13320614.0 \n",
"28 1921 34.4 \n",
"29 1931 31.6 \n",
"30 1941 27.8 \n",
"⋮ ⋮ ⋮ ⋮ \n",
"9931 2001 24.1 \n",
"9932 2011 23.6 \n",
"9933 1951 32.8 \n",
"9934 1961 34.2 \n",
"9935 1971 35.7 \n",
"9936 1981 35.4 \n",
"9937 1991 36.9 \n",
"9938 2001 38.0 \n",
"9939 2011 38.4 \n",
"9940 1951 18.2 \n",
"9941 1961 17.4 \n",
"9942 1971 16.4 \n",
"9943 1981 17.4 \n",
"9944 1991 17.0 \n",
"9945 2001 16.9 \n",
"9946 2011 17.6 \n",
"9947 1951 8.3 \n",
"9948 1961 8.9 \n",
"9949 1971 10.1 \n",
"9950 1981 11.3 \n",
"9951 1991 12.0 \n",
"9952 2001 13.0 \n",
"9953 2011 13.1 \n",
"9954 1951 0.2 \n",
"9955 1961 0.2 \n",
"9956 1971 0.2 \n",
"9957 1981 0.3 \n",
"9958 1991 0.3 \n",
"9959 2001 0.3 \n",
"9960 2011 0.3 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_new = read.csv(\"https://www12.statcan.gc.ca/census-recensement/2011/dp-pd/vc-rv/download-telecharger/download-telecharger.cfm?Lang=eng&CTLG=98-315-XWE2011001&FMT=csv\")\n",
"data_new"
]
},
{
"cell_type": "markdown",
"id": "89002f5c",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Haha, this looks quite nice but has way more information than we need (we just want the population of Canada). Also, the population of Canada is expressed in thousands, so once we selected what we want, we will need to multiply by 1,000.\n",
"\n",
"There are many ways to select rows. Let us proceed as follows: we want the rows where the geography is \"Canada\" and the characteristic is \"Population (in thousands)\". Let us find those indices of rows that satisfy the first criterion, those that satisfy the second; if we then intersect these two sets of indices, we will have selected the rows we want."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f116fdc1",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "subslide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1\n",
"\\item 2\n",
"\\item 3\n",
"\\item 4\n",
"\\item 5\n",
"\\item 6\n",
"\\item 7\n",
"\\item 8\n",
"\\item 9\n",
"\\item 10\n",
"\\item 11\n",
"\\item 12\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1\n",
"2. 2\n",
"3. 3\n",
"4. 4\n",
"5. 5\n",
"6. 6\n",
"7. 7\n",
"8. 8\n",
"9. 9\n",
"10. 10\n",
"11. 11\n",
"12. 12\n",
"\n",
"\n"
],
"text/plain": [
" [1] 1 2 3 4 5 6 7 8 9 10 11 12"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"idx_CAN = which(data_new$GEOGRAPHY.NAME == \"Canada\")\n",
"idx_char = which(data_new$CHARACTERISTIC == \"Population (in thousands)\")\n",
"idx_keep = intersect(idx_CAN, idx_char)\n",
"idx_keep"
]
},
{
"cell_type": "markdown",
"id": "09172d01",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Yes, this looks okay, so let us keep only these."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "12b87a3d",
"metadata": {
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 12 × 5\n",
"\n",
"\t | GEOGRAPHY.NAME | CHARACTERISTIC | YEAR.S. | TOTAL | FLAG_TOTAL |
\n",
"\t | <chr> | <chr> | <chr> | <dbl> | <chr> |
\n",
"\n",
"\n",
"\t1 | Canada | Population (in thousands) | 1956 | 16081 | |
\n",
"\t2 | Canada | Population (in thousands) | 1961 | 18238 | |
\n",
"\t3 | Canada | Population (in thousands) | 1966 | 20015 | |
\n",
"\t4 | Canada | Population (in thousands) | 1971 | 21568 | |
\n",
"\t5 | Canada | Population (in thousands) | 1976 | 22993 | |
\n",
"\t6 | Canada | Population (in thousands) | 1981 | 24343 | |
\n",
"\t7 | Canada | Population (in thousands) | 1986 | 25309 | |
\n",
"\t8 | Canada | Population (in thousands) | 1991 | 27297 | |
\n",
"\t9 | Canada | Population (in thousands) | 1996 | 28847 | |
\n",
"\t10 | Canada | Population (in thousands) | 2001 | 30007 | |
\n",
"\t11 | Canada | Population (in thousands) | 2006 | 31613 | |
\n",
"\t12 | Canada | Population (in thousands) | 2011 | 33477 | |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 12 × 5\n",
"\\begin{tabular}{r|lllll}\n",
" & GEOGRAPHY.NAME & CHARACTERISTIC & YEAR.S. & TOTAL & FLAG\\_TOTAL\\\\\n",
" & & & & & \\\\\n",
"\\hline\n",
"\t1 & Canada & Population (in thousands) & 1956 & 16081 & \\\\\n",
"\t2 & Canada & Population (in thousands) & 1961 & 18238 & \\\\\n",
"\t3 & Canada & Population (in thousands) & 1966 & 20015 & \\\\\n",
"\t4 & Canada & Population (in thousands) & 1971 & 21568 & \\\\\n",
"\t5 & Canada & Population (in thousands) & 1976 & 22993 & \\\\\n",
"\t6 & Canada & Population (in thousands) & 1981 & 24343 & \\\\\n",
"\t7 & Canada & Population (in thousands) & 1986 & 25309 & \\\\\n",
"\t8 & Canada & Population (in thousands) & 1991 & 27297 & \\\\\n",
"\t9 & Canada & Population (in thousands) & 1996 & 28847 & \\\\\n",
"\t10 & Canada & Population (in thousands) & 2001 & 30007 & \\\\\n",
"\t11 & Canada & Population (in thousands) & 2006 & 31613 & \\\\\n",
"\t12 & Canada & Population (in thousands) & 2011 & 33477 & \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 12 × 5\n",
"\n",
"| | GEOGRAPHY.NAME <chr> | CHARACTERISTIC <chr> | YEAR.S. <chr> | TOTAL <dbl> | FLAG_TOTAL <chr> |\n",
"|---|---|---|---|---|---|\n",
"| 1 | Canada | Population (in thousands) | 1956 | 16081 | |\n",
"| 2 | Canada | Population (in thousands) | 1961 | 18238 | |\n",
"| 3 | Canada | Population (in thousands) | 1966 | 20015 | |\n",
"| 4 | Canada | Population (in thousands) | 1971 | 21568 | |\n",
"| 5 | Canada | Population (in thousands) | 1976 | 22993 | |\n",
"| 6 | Canada | Population (in thousands) | 1981 | 24343 | |\n",
"| 7 | Canada | Population (in thousands) | 1986 | 25309 | |\n",
"| 8 | Canada | Population (in thousands) | 1991 | 27297 | |\n",
"| 9 | Canada | Population (in thousands) | 1996 | 28847 | |\n",
"| 10 | Canada | Population (in thousands) | 2001 | 30007 | |\n",
"| 11 | Canada | Population (in thousands) | 2006 | 31613 | |\n",
"| 12 | Canada | Population (in thousands) | 2011 | 33477 | |\n",
"\n"
],
"text/plain": [
" GEOGRAPHY.NAME CHARACTERISTIC YEAR.S. TOTAL FLAG_TOTAL\n",
"1 Canada Population (in thousands) 1956 16081 \n",
"2 Canada Population (in thousands) 1961 18238 \n",
"3 Canada Population (in thousands) 1966 20015 \n",
"4 Canada Population (in thousands) 1971 21568 \n",
"5 Canada Population (in thousands) 1976 22993 \n",
"6 Canada Population (in thousands) 1981 24343 \n",
"7 Canada Population (in thousands) 1986 25309 \n",
"8 Canada Population (in thousands) 1991 27297 \n",
"9 Canada Population (in thousands) 1996 28847 \n",
"10 Canada Population (in thousands) 2001 30007 \n",
"11 Canada Population (in thousands) 2006 31613 \n",
"12 Canada Population (in thousands) 2011 33477 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_new = data_new[idx_keep,]\n",
"data_new"
]
},
{
"cell_type": "markdown",
"id": "a30736ce",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"We want to concatenate this data.frame with the one from earlier. To do this, we need the two data frames to have the same number of columns and, actually, the same column names and entry types (notice that **YEAR.S.** in data_new is a column of characters). \n",
"\n",
"So what remains to do:"
]
},
{
"cell_type": "markdown",
"id": "649bf6e0",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"1. Rename the columns in the pruned old data (data_pruned) to **year** and **population**. Personally, I prefer lowercase column names.. and **population** is more informative than **Canada**.\n",
"2. Keep only the relevant columns in data_new, rename them accordingly and multiply population by 1,000 there.\n",
"3. Transform year in data_new to numbers.\n",
"4. We already have data up to and including 1976 in data_old, so get rid of that in data_new.\n",
"5. Append the rows of data_new to those of data_pruned."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "cc286223",
"metadata": {
"slideshow": {
"slide_type": "subslide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [],
"source": [
"colnames(data_old) = c(\"year\", \"population\")\n",
"data_new = data_new[,c(\"YEAR.S.\",\"TOTAL\")]\n",
"colnames(data_new) = c(\"year\", \"population\")\n",
"data_new$year = as.numeric(data_new$year)\n",
"data_new = data_new[which(data_new$year>1976),]\n",
"data_new$population = data_new$population*1000\n",
"\n",
"data = rbind(data_old,data_new)"
]
},
{
"cell_type": "markdown",
"id": "e3234223",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"OK, we are ready now!!"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "5b69fa3d",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "subslide"
},
"vscode": {
"languageId": "r"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"plot(data$year, data$population,\n",
" type = \"b\", lwd = 2,\n",
" xlab = \"Year\", ylab = \"Population\")"
]
},
{
"cell_type": "markdown",
"id": "2faad8cb",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"In case we need the data elsewhere, we can save it."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "db34ba0e",
"metadata": {
"vscode": {
"languageId": "r"
}
},
"outputs": [],
"source": [
"write.csv(data, file = \"Canada_census.csv\")"
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"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": "4.3.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}