Exercise 3b.1
We have downloaded data from www.hagstova.fo and cleaned it up a little bit, and it is avilable here:
https://olavurmortensen.github.io/r-for-statistics/notebooks/exercises/election_data.csv
This data contains data on the Faroese parliament elections, the number of votes for each party since 1978. Let’s explore this data a bit.
We will need the tidyr
package in this exercise.
install.packages('tidyr')
First load some packages.
library(readr)
library(dplyr)
library(tidyr)
library(ggplot2)
library(magrittr)
Note that if we try to load this data with default parameters, we get an error.
data <- read_csv('election_data.csv')
The error in this case would be:
Error in make.names(x) : invalid multibyte string at ‘r’
This is because the data contains some characters that don’t conform with the default character encoding in read_csv()
, which is "UTF-8"
. Most likely, the character causing the trouble is "ð"
. We need to change the character encoding, and in read_csv()
we do it in the following way.
data <- read_csv('election_data.csv', locale=locale(encoding='ISO-8859-1'))
Exercise 3b.2
After you have loaded the data, give the variables more convenient (easy to write) names, using rename()
. Then, run the following code:
data <- data %>% gather(key='party', value='votes', 'ff', 'sa', 'ja', 'sj', 'tj', 'mi', 'fr')
Look at the dataset, can you see what has happened to the dataset? Look up the gather()
function on the tidyr
website (https://tidyr.tidyverse.org/) to understand this function.
Exercise 3b.3
Make a bar chart using the geom_col()
function. Look up its documentation to figure out how it works. Try making a stacked bar chart where each party is a different color.
Exercise 3b.4
Plot each party’s votes as a line, and color the lines by party.
LS0tCnRpdGxlOiAiRXhlcmNpc2UgM2I6IGVsZWN0aW9uIGRhdGEiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMgRXhlcmNpc2UgM2IuMQoKV2UgaGF2ZSBkb3dubG9hZGVkIGRhdGEgZnJvbSB3d3cuaGFnc3RvdmEuZm8gYW5kIGNsZWFuZWQgaXQgdXAgYSBsaXR0bGUgYml0LCBhbmQgaXQgaXMgYXZpbGFibGUgaGVyZToKCj4gaHR0cHM6Ly9vbGF2dXJtb3J0ZW5zZW4uZ2l0aHViLmlvL3ItZm9yLXN0YXRpc3RpY3Mvbm90ZWJvb2tzL2V4ZXJjaXNlcy9lbGVjdGlvbl9kYXRhLmNzdgoKVGhpcyBkYXRhIGNvbnRhaW5zIGRhdGEgb24gdGhlIEZhcm9lc2UgcGFybGlhbWVudCBlbGVjdGlvbnMsIHRoZSBudW1iZXIgb2Ygdm90ZXMgZm9yIGVhY2ggcGFydHkgc2luY2UgMTk3OC4gTGV0J3MgZXhwbG9yZSB0aGlzIGRhdGEgYSBiaXQuCgpXZSB3aWxsIG5lZWQgdGhlIGB0aWR5cmAgcGFja2FnZSBpbiB0aGlzIGV4ZXJjaXNlLgoKYGBge3IgZXZhbD1GQUxTRX0KaW5zdGFsbC5wYWNrYWdlcygndGlkeXInKQpgYGAKCkZpcnN0IGxvYWQgc29tZSBwYWNrYWdlcy4KCmBgYHtyIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkocmVhZHIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShtYWdyaXR0cikKYGBgCgpOb3RlIHRoYXQgaWYgd2UgdHJ5IHRvIGxvYWQgdGhpcyBkYXRhIHdpdGggZGVmYXVsdCBwYXJhbWV0ZXJzLCB3ZSBnZXQgYW4gZXJyb3IuCgpgYGB7ciBldmFsPUZBTFNFfQpkYXRhIDwtIHJlYWRfY3N2KCdlbGVjdGlvbl9kYXRhLmNzdicpCmBgYAoKVGhlIGVycm9yIGluIHRoaXMgY2FzZSB3b3VsZCBiZToKCj4gRXJyb3IgaW4gbWFrZS5uYW1lcyh4KSA6IGludmFsaWQgbXVsdGlieXRlIHN0cmluZyBhdCAnPGUxPnInCgpUaGlzIGlzIGJlY2F1c2UgdGhlIGRhdGEgY29udGFpbnMgc29tZSBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgY29uZm9ybSB3aXRoIHRoZSBkZWZhdWx0IGNoYXJhY3RlciBlbmNvZGluZyBpbiBgcmVhZF9jc3YoKWAsIHdoaWNoIGlzIGAiVVRGLTgiYC4gTW9zdCBsaWtlbHksIHRoZSBjaGFyYWN0ZXIgY2F1c2luZyB0aGUgdHJvdWJsZSBpcyBgIsOwImAuIFdlIG5lZWQgdG8gY2hhbmdlIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcsIGFuZCBpbiBgcmVhZF9jc3YoKWAgd2UgZG8gaXQgaW4gdGhlIGZvbGxvd2luZyB3YXkuCgpgYGB7ciBtZXNzYWdlPUZBTFNFfQpkYXRhIDwtIHJlYWRfY3N2KCdlbGVjdGlvbl9kYXRhLmNzdicsIGxvY2FsZT1sb2NhbGUoZW5jb2Rpbmc9J0lTTy04ODU5LTEnKSkKYGBgCgoKYGBge3IgaW5jbHVkZT1GQUxTRX0KZGF0YSA8LSBkYXRhICU+JSByZW5hbWUoJ3llYXInPSfDoXInLCAnamEnPSdKYXZuYcOwYXJmbG9ra3VyaW4nLCAnZmYnPSdGw7Nsa2FmbG9ra3VyaW4nLCAnc2EnPSdTYW1iYW5kc2Zsb2trdXJpbicsICdzaic9J07DvXR0IFNqw6FsdnN0w71yaScsICd0aic9J1Rqw7PDsHZlbGRpJywgJ21pJz0nTWnDsGZsb2trdXJpbicsICdmcic9J0ZyYW1zw7NrbicpCmBgYAoKIyBFeGVyY2lzZSAzYi4yCgpBZnRlciB5b3UgaGF2ZSBsb2FkZWQgdGhlIGRhdGEsIGdpdmUgdGhlIHZhcmlhYmxlcyBtb3JlIGNvbnZlbmllbnQgKGVhc3kgdG8gd3JpdGUpIG5hbWVzLCB1c2luZyBgcmVuYW1lKClgLiBUaGVuLCBydW4gdGhlIGZvbGxvd2luZyBjb2RlOgoKYGBge3J9CmRhdGEgPC0gZGF0YSAlPiUgZ2F0aGVyKGtleT0ncGFydHknLCB2YWx1ZT0ndm90ZXMnLCAnZmYnLCAnc2EnLCAnamEnLCAnc2onLCAndGonLCAnbWknLCAnZnInKQpgYGAKCkxvb2sgYXQgdGhlIGRhdGFzZXQsIGNhbiB5b3Ugc2VlIHdoYXQgaGFzIGhhcHBlbmVkIHRvIHRoZSBkYXRhc2V0PyBMb29rIHVwIHRoZSBgZ2F0aGVyKClgIGZ1bmN0aW9uIG9uIHRoZSBgdGlkeXJgIHdlYnNpdGUgKGh0dHBzOi8vdGlkeXIudGlkeXZlcnNlLm9yZy8pIHRvIHVuZGVyc3RhbmQgdGhpcyBmdW5jdGlvbi4KCiMgRXhlcmNpc2UgM2IuMwoKTWFrZSBhIGJhciBjaGFydCB1c2luZyB0aGUgYGdlb21fY29sKClgIGZ1bmN0aW9uLiBMb29rIHVwIGl0cyBkb2N1bWVudGF0aW9uIHRvIGZpZ3VyZSBvdXQgaG93IGl0IHdvcmtzLiBUcnkgbWFraW5nIGEgc3RhY2tlZCBiYXIgY2hhcnQgd2hlcmUgZWFjaCBwYXJ0eSBpcyBhIGRpZmZlcmVudCBjb2xvci4KCiMgRXhlcmNpc2UgM2IuNAoKUGxvdCBlYWNoIHBhcnR5J3Mgdm90ZXMgYXMgYSBsaW5lLCBhbmQgY29sb3IgdGhlIGxpbmVzIGJ5IHBhcnR5LgoKCgoKCgoKCgoKCgoKCgo=