Skip to content

Latest commit

 

History

History
executable file
·
1406 lines (1241 loc) · 42.7 KB

eurostat_tutorial.md

File metadata and controls

executable file
·
1406 lines (1241 loc) · 42.7 KB

This R package provides tools to access Eurostat database as part of the rOpenGov project.

For contact information and source code, see the github page

<<<<<<< HEAD Installation

=======

Eurostat R tools

This R package provides tools to access Eurostat database as part of the rOpenGov project.

For contact information and source code, see the github page

Available tools

Installation

commit before rebasing

Release version:

install.packages("eurostat")

Development version:

library(devtools)
install_github("ropengov/eurostat")

Overall, the eurostat package includes the following functions:

<<<<<<< HEAD clean_eurostat_cache Clean Eurostat Cache dic_order Order of Variable Levels from Eurostat Dictionary. eu_countries Countries and Country Codes eurostat-package R Tools for Eurostat open data eurotime2date Date Conversion from Eurostat Time Format eurotime2num Conversion of Eurostat Time Format to Numeric get_eurostat Read Eurostat Data get_eurostat_dic Download Eurostat Dictionary get_eurostat_json Get Data from Eurostat API in JSON get_eurostat_raw Download Data from Eurostat Database get_eurostat_toc Download Table of Contents of Eurostat Data Sets harmonize_country_code Harmonize Country Code label_eurostat Get Eurostat Codes search_eurostat Grep Datasets Titles from Eurostat

Finding data

Function get_eurostat_toc() downloads a table of contents of eurostat datasets. The values in column 'code' should be used to download a selected dataset.

# Load the package
library(eurostat)
library(rvest)

# Get Eurostat data listing
toc <- get_eurostat_toc()

# Check the first items
library(knitr)
kable(head(toc))
title code type last.update.of.data last.table.structure.change data.start data.end values
Database by themes data folder NA
General and regional statistics general folder NA
European and national indicators for short-term analysis euroind folder NA
Business and consumer surveys (source: DG ECFIN) ei_bcs folder NA
Consumer surveys (source: DG ECFIN) ei_bcs_cs folder NA
Consumers - monthly data ei_bsco_m dataset 28.07.2016 28.07.2016 1985M01 2016M07 NA

With search_eurostat() you can search the table of contents for particular patterns, e.g. all datasets related to passenger transport. The kable function to produces nice markdown output. Note that with the type argument of this function you could restrict the search to for instance datasets or tables.

# info about passengers
kable(head(search_eurostat("passenger transport")))
title code type last.update.of.data last.table.structure.change data.start data.end values
5688 Volume of passenger transport relative to GDP tran_hv_pstra dataset 03.08.2016 03.08.2016 2000 2014 NA
5689 Modal split of passenger transport tran_hv_psmod dataset 03.08.2016 02.08.2016 1990 2014 NA
5742 Railway transport - Total annual passenger transport (1 000 pass., million pkm) rail_pa_total dataset 18.08.2016 26.05.2016 2004 2015 NA
5746 International railway passenger transport from the reporting country to the country of disembarkation (1 000 passengers) rail_pa_intgong dataset 18.08.2016 26.05.2016 2002 2015 NA
5747 International railway passenger transport from the country of embarkation to the reporting country (1 000 passengers) rail_pa_intcmng dataset 18.08.2016 26.05.2016 2002 2015 NA
6097 Air passenger transport by reporting country avia_paoc dataset 15.07.2016 14.07.2016 1993 2016Q1 NA
=======
library(eurostat)
eurostat.functions <- sort(ls("package:eurostat"))
kable(as.data.frame(eurostat.functions))
eurostat.functions
candidate_countries
clean_eurostat_cache
cut_to_classes
dic_order
ea_countries
efta_countries
eu_countries
eurotime2date
eurotime2num
get_eurostat
get_eurostat_dic
get_eurostat_json
get_eurostat_toc
getEurostatTOC
grepEurostatTOC
label_eurostat
label_eurostat_tables
label_eurostat_vars
merge_with_geodata
search_eurostat

Finding data

Function get_eurostat_toc() downloads a table of contents of eurostat datasets. The values in column 'code' should be used to download a selected dataset.

# Load the package
library(eurostat)
library(rvest)

# Get Eurostat data listing
toc <- get_eurostat_toc()

# Check the first items
library(knitr)
kable(head(toc))
title code type last.update.of.data last.table.structure.change data.start data.end values
Database by themes data folder NA
General and regional statistics general folder NA
European and national indicators for short-term analysis euroind folder NA
Business and consumer surveys (source: DG ECFIN) ei_bcs folder NA
Consumer surveys (source: DG ECFIN) ei_bcs_cs folder NA
Consumers - monthly data ei_bsco_m dataset 28.04.2016 28.04.2016 1985M01 2016M04 NA

With search_eurostat() you can search the table of contents for particular patterns, e.g. all datasets related to passenger transport. The kable function to produces nice markdown output. Note that with the type argument of this function you could restrict the search to for instance datasets or tables.

# info about passengers
kable(head(search_eurostat("passenger transport")))
title code type last.update.of.data last.table.structure.change data.start data.end values
5588 Volume of passenger transport relative to GDP tran_hv_pstra dataset 05.06.2015 04.06.2015 1995 2013 NA
5589 Modal split of passenger transport tran_hv_psmod dataset 05.06.2015 05.06.2015 1990 2013 NA
5628 Railway transport - Total annual passenger transport (1 000 pass., million pkm) rail_pa_total dataset 14.04.2016 14.04.2016 2004 2015 NA
5632 International railway passenger transport from the reporting country to the country of disembarkation (1 000 passengers) rail_pa_intgong dataset 14.04.2016 14.04.2016 2014 2015 NA
5633 International railway passenger transport from the country of embarkation to the reporting country (1 000 passengers) rail_pa_intcmng dataset 14.04.2016 14.04.2016 2014 2015 NA
5982 Air passenger transport by reporting country avia_paoc dataset 25.04.2016 19.04.2016 1993 2016M02 NA

commit before rebasing

Codes for the dataset can be searched also from the Eurostat database. The Eurostat database gives codes in the Data Navigation Tree after every dataset in parenthesis.

Downloading data

The package supports two of the Eurostats download methods: the bulk download facility and the Web Services' JSON API. The bulk download facility is the fastest method to download whole datasets. It is also often the only way as the JSON API has limitation of maximum 50 sub-indicators at a time and whole datasets usually exceeds that. To download only a small section of the dataset the JSON API is faster, as it allows to make a data selection before downloading.

A user does not usually have to bother with methods, as both are used via main function get_eurostat(). If only the table id is given, the whole table is downloaded from the bulk download facility. If also filters are defined the JSON API is used.

Here an example of indicator Modal split of passenger transport. This is the percentage share of each mode of transport in total inland transport, expressed in passenger-kilometres (pkm) based on transport by passenger cars, buses and coaches, and trains. All data should be based on movements on national territory, regardless of the nationality of the vehicle. However, the data collection is not harmonized at the EU level.

Pick and print the id of the data set to download:

id <- search_eurostat("Modal split of passenger transport", 
                         type = "table")$code[1]
print(id)

[1] "tsdtr210"

Get the whole corresponding table. As the table is annual data, it is more convient to use a numeric time variable than use the default date format:

dat <- get_eurostat(id, time_format = "num")

Investigate the structure of the downloaded data set:

str(dat)

## 'data.frame':    2326 obs. of  5 variables:
##  $ unit   : Factor w/ 1 level "PC": 1 1 1 1 1 1 1 1 1 1 ...
##  $ vehicle: Factor w/ 3 levels "BUS_TOT","CAR",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ geo    : Factor w/ 35 levels "AT","BE","CH",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ time   : num  1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 ...
##  $ values : num  11 10.6 3.7 9.1 11.3 32.4 14.9 13.5 6 24.8 ...

kable(head(dat))
unit vehicle geo time values
1 PC BUS_TOT AT 1990 11.0
2 PC BUS_TOT BE 1990 10.6
4 PC BUS_TOT CH 1990 3.7
7 PC BUS_TOT DE 1990 9.1
8 PC BUS_TOT DK 1990 11.3
10 PC BUS_TOT EL 1990 32.4

Or you can get only a part of the dataset by defining filters argument. It should be named list, where names corresponds to variable names (lower case) and values are vectors of codes corresponding desidered series (upper case). For time variable, in addition to a time, also a sinceTimePeriod and a lastTimePeriod can be used.

dat2 <- get_eurostat(id, filters = list(geo = c("EU28", "FI"), lastTimePeriod=1), time_format = "num")
kable(dat2)
unit vehicle geo time values
PC BUS_TOT EU28 2014 9.1
PC BUS_TOT FI 2014 9.8
PC CAR EU28 2014 83.4
PC CAR FI 2014 85.2
PC TRN EU28 2014 7.6
PC TRN FI 2014 5.0

Replacing codes with labels

By default variables are returned as Eurostat codes, but to get human-readable labels instead, use a type = "label" argument.

datl2 <- get_eurostat(id, filters = list(geo = c("EU28", "FI"), 
                                         lastTimePeriod = 1), 
                      type = "label", time_format = "num")
kable(head(datl2))
unit vehicle geo time values
Percentage Motor coaches, buses and trolley buses European Union (28 countries) 2014 9.1
Percentage Motor coaches, buses and trolley buses Finland 2014 9.8
Percentage Passenger cars European Union (28 countries) 2014 83.4
Percentage Passenger cars Finland 2014 85.2
Percentage Trains European Union (28 countries) 2014 7.6
Percentage Trains Finland 2014 5.0

Eurostat codes can be replaced also after downloadind with human-readable labels using a function label_eurostat(). It replaces the eurostat codes based on definitions from Eurostat dictionaries.

datl <- label_eurostat(dat)
kable(head(datl))
unit vehicle geo time values
1 Percentage Motor coaches, buses and trolley buses Austria 1990 11.0
2 Percentage Motor coaches, buses and trolley buses Belgium 1990 10.6
4 Percentage Motor coaches, buses and trolley buses Switzerland 1990 3.7
7 Percentage Motor coaches, buses and trolley buses Germany (until 1990 former territory of the FRG) 1990 9.1
8 Percentage Motor coaches, buses and trolley buses Denmark 1990 11.3
10 Percentage Motor coaches, buses and trolley buses Greece 1990 32.4

The label_eurostat() allows also conversion of individual variable vectors or variable names.

label_eurostat_vars(names(datl))

Vehicle information has 3 levels. You can check them now with:

levels(datl$vehicle)

Selecting and modifying data

EFTA, Eurozone, EU and EU candidate countries

To facilititate fast plotting of standard European geographic areas, the package provides ready-made lists of the country codes used in the eurostat database for EFTA (efta_countries), Euro area (ea_countries), EU (eu_countries) and EU candidate countries (candidate_countries). This helps to select specific groups of countries for closer investigation. For conversions with other standard country coding systems, see the countrycode R package. To retrieve the country code list for EFTA, for instance, use:

data(efta_countries)
kable(efta_countries)
code name
IS Iceland
LI Liechtenstein
NO Norway
CH Switzerland

EU data from 2012 in all vehicles:

dat_eu12 <- subset(datl, geo == "European Union (28 countries)" & time == 2012)
kable(dat_eu12, row.names = FALSE)
unit vehicle geo time values
Percentage Motor coaches, buses and trolley buses European Union (28 countries) 2012 9.3
Percentage Passenger cars European Union (28 countries) 2012 83.0
Percentage Trains European Union (28 countries) 2012 7.7

EU data from 2000 - 2012 with vehicle types as variables:

Reshaping the data is best done with spread() in tidyr.

library("tidyr")
dat_eu_0012 <- subset(dat, geo == "EU28" & time %in% 2000:2012)
dat_eu_0012_wide <- spread(dat_eu_0012, vehicle, values)
kable(subset(dat_eu_0012_wide, select = -geo), row.names = FALSE)
unit time BUS_TOT CAR TRN
PC 2000 10.4 82.4 7.2
PC 2001 10.2 82.7 7.1
PC 2002 9.9 83.3 6.8
PC 2003 9.9 83.5 6.7
PC 2004 9.8 83.4 6.8
PC 2005 9.9 83.2 6.9
PC 2006 9.7 83.2 7.1
PC 2007 9.8 83.1 7.2
PC 2008 9.7 83.1 7.3
PC 2009 9.2 83.7 7.1
PC 2010 9.2 83.6 7.2
PC 2011 9.2 83.4 7.3
PC 2012 9.3 83.0 7.7

Train passengers for selected EU countries in 2000 - 2012

dat_trains <- subset(datl, geo %in% c("Austria", "Belgium", "Finland", "Sweden")
                     & time %in% 2000:2012 
                     & vehicle == "Trains")

dat_trains_wide <- spread(dat_trains, geo, values) 
kable(subset(dat_trains_wide, select = -vehicle), row.names = FALSE)
unit time Austria Belgium Finland Sweden
Percentage 2000 9.7 6.3 5.1 7.5
Percentage 2001 9.7 6.4 4.8 7.9
Percentage 2002 9.7 6.5 4.8 7.8
Percentage 2003 9.5 6.5 4.7 7.7
Percentage 2004 9.4 7.1 4.7 7.5
Percentage 2005 9.8 6.6 4.8 7.7
Percentage 2006 10.0 6.9 4.8 8.3
Percentage 2007 10.0 7.1 5.0 8.7
Percentage 2008 11.1 7.5 5.4 9.4
Percentage 2009 11.1 7.5 5.1 9.5
Percentage 2010 11.0 7.7 5.2 9.4
Percentage 2011 11.3 7.7 5.0 8.8
Percentage 2012 11.8 7.8 5.3 9.1

Visualization

Visualizing train passenger data with ggplot2:

library(ggplot2)
p <- ggplot(dat_trains, aes(x = time, y = values, colour = geo)) 
p <- p + geom_line()
print(p)

Triangle plot

Triangle plot on passenger transport distributions with 2012 data for all countries with data.

library(tidyr)

transports <- spread(subset(dat, time == 2012, select = c(geo, vehicle, values)), vehicle, values)

transports <- na.omit(transports)

# triangle plot
library(plotrix)
triax.plot(transports[, -1], show.grid = TRUE, 
           label.points = TRUE, point.labels = transports$geo, 
           pch = 19)

<<<<<<< HEAD Citing the package

=======

Maps

Quick demo1 - whole Europe at country level reso 1:60mln

# Data from Eurostat
eurostat::get_eurostat(id = "tsdtr420", time_format = "num") %>% 
  # subset to have only a single row per geo
  dplyr::filter(sex == "T", time %in% 2014) %>% 
  # merge with geodata
  merge_with_geodata(data=.,geocol="geo",res = "60") %>% 
  # plot map
  ggplot(data=., aes(x=long,y=lat,group=group)) +
  geom_polygon(aes(fill=values),color="white")
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tsdtr420_num_code_TF.rds
## Table  tsdtr420  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tsdtr420_num_code_TF.rds

plot of chunk maps7

Quick demo2 - Poland at NUTS3 level reso 1:1mln

# Data from Eurostat
eurostat::get_eurostat("tgs00026", time_format = "raw") %>% 
  # subset to have only a single row per geo
  dplyr::filter(time == 2010, grepl("PL",geo), nchar(as.character(geo)) == 4) %>% 
  # merge with geodata
  merge_with_geodata(data=.,geocol="geo",res = "01") %>% 
  # plot map
  ggplot(data=., aes(x=long,y=lat,group=group)) +
  geom_polygon(aes(fill=values),color="white")
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
## Table  tgs00026  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds

plot of chunk maps8

Quick demo3 - whole Europe at country level reso 1:60mln

# Data from Eurostat
eurostat::get_eurostat(id = "tsdtr420", time_format = "num") %>% 
  # subset to have only a single row per geo
  dplyr::filter(sex == "T", time == 2014) %>% 
  # categorise
  mutate(cat = cut_to_classes(values)) %>% 
  # merge with geodata
  merge_with_geodata(data=.,geocol="geo",res = "60") %>% 
  # plot map
  ggplot(data=., aes(x=long,y=lat,group=group)) +
  geom_polygon(aes(fill=cat),color="white") +
  scale_fill_brewer(palette ="Oranges")
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tsdtr420_num_code_TF.rds
## Table  tsdtr420  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tsdtr420_num_code_TF.rds
## Warning in classIntervals(x, n = n, method = method): var has missing
## values, omitted in finding classes

## Warning in classIntervals(x, n = n, method = method): var has missing
## values, omitted in finding classes

plot of chunk maps1

Quick demo4 - Poland at NUTS3 level reso 1:1mln

eurostat::get_eurostat("tgs00026", time_format = "raw") %>% 
  # subset to have only a single row per geo
  dplyr::filter(time == 2010, grepl("PL",geo), nchar(as.character(geo)) == 4) %>% 
  # categorise
  mutate(cat = cut_to_classes(values)) %>% 
  # merge with geodata
  merge_with_geodata(data=.,geocol="geo",res = "01") %>% 
  # plot map
  ggplot(data=., aes(x=long,y=lat,group=group)) +
  geom_polygon(aes(fill=cat),color="white") +
  scale_fill_brewer(palette ="Oranges")
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
## Table  tgs00026  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds

plot of chunk maps2

Reproducing the map in the paper

library(eurostat)
# Downloading and manipulating the tabular data
get_eurostat("tgs00026", time_format = "raw") %>% 
  # subsetting to year 2005 and NUTS-3 level
  dplyr::filter(time == 2005, nchar(as.character(geo)) == 4) %>% 
  # categorise
  mutate(cat = cut_to_classes(values)) %>% 
  # merge with geodata
  merge_with_geodata(data=.,geocol="geo",res = "60") %>% 
  # plot map
  ggplot(data=., aes(long,lat,group=group)) + 
    geom_polygon(aes(fill = cat),colour=alpha("white", 1/2),size=.2) +
    scale_fill_manual(values=c("dim grey",RColorBrewer::brewer.pal(n = 5, name = "Oranges"))) +
    coord_map(project="orthographic", xlim=c(-22,34), ylim=c(35,70)) +
    labs(title = paste0("Disposable household incomes in 2005")) +
    theme(legend.position = c(0.03,0.40), 
                legend.justification=c(0,0),
                legend.key.size=unit(6,'mm'),
                legend.direction = "vertical",
                legend.background=element_rect(colour=NA, fill=alpha("white", 2/3)),
                legend.text=element_text(size=12), 
                legend.title=element_text(size=12), 
                title=element_text(size=16), 
                panel.background = element_blank(), 
                plot.background = element_blank(),
                panel.grid.minor = element_line(colour = 'Grey80', size = .5, linetype = 'solid'),
                panel.grid.major = element_line(colour = 'Grey80', size = .5, linetype = 'solid'),
                axis.text = element_blank(), 
                axis.title = element_blank(), 
                axis.ticks = element_blank(), 
                plot.margin = unit(c(-3,-1.5, -3, -1.5), "cm")) +
    guides(fill = guide_legend(title = "EUR per Year",title.position = "top", title.hjust=0))
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
## Table  tgs00026  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
## Warning in classIntervals(x, n = n, method = method): var has missing
## values, omitted in finding classes

## Warning in classIntervals(x, n = n, method = method): var has missing
## values, omitted in finding classes

plot of chunk maps4

Poland with labels

library(eurostat)
# Downloading and manipulating the tabular data
df <- get_eurostat("tgs00026", time_format = "raw") %>% 
  # subsetting to year 2005 and NUTS-3 level
  dplyr::filter(time == 2005, nchar(as.character(geo)) == 4, grepl("PL",geo))
## Reading cache file /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
## Table  tgs00026  read from cache file:  /tmp/RtmpFVAwDm/eurostat/tgs00026_raw_code_TF.rds
df_lab <- label_eurostat(df)
names(df_lab) <- paste0("lab",names(df_lab))

df2 <- cbind(df,df_lab)

# categorise
df2$cat <- cut_to_classes(df2$values)

# merge with geodata
plot_map <- merge_with_geodata(data=df2,geocol="geo",res = "60")

cnames <- stats:::aggregate.formula(cbind(long, lat) ~ labgeo, data=plot_map, mean) # region names
cnames <- merge(cnames,df2,by="labgeo")

# plot map
p <- ggplot(data=plot_map, aes(long,lat,group=group))
p <- p + geom_polygon(aes(fill = cat),colour="white",size=.8)
p <- p + scale_fill_manual(values=RColorBrewer::brewer.pal(n = 5, name = "Oranges"))
p <- p + geom_label(data=cnames, aes(long, lat, label = paste(labgeo,"\n",values,""), group=labgeo,fill=cat), 
                    size=3.5, color="white", fontface="bold", lineheight=.8, show.legend=FALSE)
p <- p + coord_map(project="orthographic")
p <- p + labs(title = paste0("Disposable household incomes in 2005"))
p <- p +  theme(legend.position = c(0.1,0.03), 
                legend.justification=c(0,0),
                legend.key.size=unit(6,'mm'),
                legend.direction = "vertical",
                legend.background=element_rect(colour=NA, fill=alpha("white", 2/3)),
                legend.text=element_text(size=12), 
                legend.title=element_text(size=12), 
                title=element_text(size=16), 
                panel.background = element_blank(), 
                plot.background = element_blank(),
                panel.grid.minor = element_line(colour = 'Grey80', size = .5, linetype = 'solid'),
                panel.grid.major = element_line(colour = 'Grey80', size = .5, linetype = 'solid'),
                axis.text = element_blank(), 
                axis.title = element_blank(), 
                axis.ticks = element_blank(), 
                plot.margin = unit(c(-3,-1.5, -3, -1.5), "cm"))
p <- p + guides(fill = guide_legend(title = "EUR per Year",
                                    title.position = "top", 
                                    title.hjust=0))
p

plot of chunk maps6

For further examples, see also the blog post on the eurostat R package.

commit before rebasing

Citing the Data Kindly cite Eurostat.

Citing the R tools This work can be freely used, modified and distributed under the BSD-2-clause (modified FreeBSD) license:

citation("eurostat")

## 
## Kindly cite the eurostat R package as follows:
## 
##   (C) Leo Lahti, Janne Huovari, Markus Kainu, Przemyslaw Biecek
##   2014-2016. eurostat R package URL:
##   https://github.com/rOpenGov/eurostat
## 
## A BibTeX entry for LaTeX users is
## 
##   @Misc{,
##     title = {eurostat R package},
##     author = {Leo Lahti and Janne Huovari and Markus Kainu and Przemyslaw Biecek},
##     year = {2014-2016},
##     url = {https://github.com/rOpenGov/eurostat},
##   }

Acknowledgements

We are grateful to all contributors and Eurostat open data portal! This rOpenGov R package is based on earlier CRAN packages statfi and smarterpoland. The datamart and reurostat packages seem to develop related Eurostat tools but at the time of writing this tutorial this package seems to be in an experimental stage. The quandl package may also provides access to some versions of eurostat data sets.

Session info

This tutorial was created with

<<<<<<< HEAD sessionInfo()

## R version 3.3.1 (2016-06-21)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04 LTS
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] plotrix_3.6-2      ggplot2_2.1.0      tidyr_0.5.1       
## [4] rvest_0.3.2        xml2_1.0.0         eurostat_1.2.24   
## [7] rmarkdown_0.9.6.14 knitr_1.13        
## 
## loaded via a namespace (and not attached):

<<<<<<< HEAD ## [1] Rcpp_0.12.4 magrittr_1.5 munsell_0.4.3 colorspace_1.2-6 ## [5] R6_2.1.2 plyr_1.8.3 stringr_1.0.0 httr_1.1.0
## [9] highr_0.5.1 dplyr_0.4.3 tools_3.2.2 grid_3.2.2
## [13] parallel_3.2.2 gtable_0.2.0 DBI_0.3.1 htmltools_0.3
## [17] yaml_2.1.13 digest_0.6.9 assertthat_0.1 formatR_1.3
## [21] curl_0.9.7 evaluate_0.8.3 labeling_0.3 stringi_1.0-1
## [25] scales_0.4.0 jsonlite_0.9.19

sessionInfo()
## R version 3.3.0 (2016-05-03)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.4 LTS
## 
## locale:
##  [1] LC_CTYPE=fi_FI.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=fi_FI.UTF-8        LC_COLLATE=fi_FI.UTF-8    
##  [5] LC_MONETARY=fi_FI.UTF-8    LC_MESSAGES=fi_FI.UTF-8   
##  [7] LC_PAPER=fi_FI.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=fi_FI.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] dplyr_0.4.3          xtable_1.8-2         classInt_0.1-23     
##  [4] stringr_1.0.0        plotrix_3.6-1        tidyr_0.4.1         
##  [7] rvest_0.3.1          xml2_0.1.2           knitr_1.12.3        
## [10] ggplot2_2.1.0        eurostat_1.2.21.9003
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_0.12.4        magrittr_1.5       maps_3.1.0        
##  [4] munsell_0.4.3      colorspace_1.2-6   R6_2.1.2          
##  [7] httr_1.1.0         highr_0.5.1        plyr_1.8.3        
## [10] tools_3.3.0        parallel_3.3.0     grid_3.3.0        
## [13] gtable_0.1.2       e1071_1.6-7        DBI_0.3.1         
## [16] class_7.3-14       lazyeval_0.1.10    assertthat_0.1    
## [19] digest_0.6.9       mapproj_1.2-4      RColorBrewer_1.1-2
## [22] formatR_1.3        ggrepel_0.5        curl_0.9.6        
## [25] mime_0.4           evaluate_0.9       labeling_0.3      
## [28] stringi_1.0-1      scales_0.3.0       jsonlite_0.9.19   
## [31] markdown_0.7.7

commit before rebasing ======= ## [1] Rcpp_0.12.5 magrittr_1.5 munsell_0.4.3 colorspace_1.2-6 ## [5] R6_2.1.2 plyr_1.8.4 stringr_1.0.0 httr_1.2.1
## [9] highr_0.6 tools_3.3.1 grid_3.3.1 gtable_0.2.0
## [13] htmltools_0.3.5 yaml_2.1.13 digest_0.6.9 assertthat_0.1
## [17] tibble_1.1 formatR_1.4 curl_0.9.7 evaluate_0.9
## [21] labeling_0.3 stringi_1.1.1 scales_0.4.0 jsonlite_1.0 origin/master