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
=======
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
- Installation
- Finding data
- Downloading data
- Replacing codes with labels
- Selecting and modifying data
- Visualization
- Maps
- Citing the package
- Acknowledgements
- Session info
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
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 |
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.
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 |
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)
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 |
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 |
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 |
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 |
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 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)
=======
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
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
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
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
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
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
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},
## }
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.
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