Retrieve data from Eurostat API in JSON format.
Usage
get_eurostat_json(
id,
filters = NULL,
type = "code",
lang = "EN",
stringsAsFactors = FALSE,
...
)
Arguments
- id
A code name for the dataset of interested. See the table of contents of eurostat datasets for more details.
- filters
A named list of filters. Names of list objects are Eurostat variable codes and values are vectors of observation codes. If
NULL
(default) the whole dataset is returned. See details for more on filters and limitations per query.- type
A type of variables, "
code
" (default), "label
" or "both
". The parameter "both
" will return a data_frame with named vectors, labels as values and codes as names.- lang
A language used for metadata. Default is
EN
, other options areFR
andDE
.- stringsAsFactors
if
FALSE
(the default) the variables are returned as characters. IfTRUE
the variables are converted to factors in original Eurostat order.- ...
Arguments passed on to
httr::GET
url
the url of the page to retrieve
config
Additional configuration settings such as http authentication (
authenticate()
), additional headers (add_headers()
), cookies (set_cookies()
) etc. Seeconfig()
for full details and list of helpers.handle
The handle to use with this request. If not supplied, will be retrieved and reused from the
handle_pool()
based on the scheme, hostname and port of the url. By default httr requests to the same scheme/host/port combo. This substantially reduces connection time, and ensures that cookies are maintained over multiple requests to the same host. Seehandle_pool()
for more details.
Details
Data to retrieve from
The Eurostat Web Services
can be specified with filters. Normally, it is
better to use JSON query through get_eurostat()
, than to use
get_eurostat_json()
directly.
Queries are limited to 50 sub-indicators at a time. A time can be
filtered with fixed "time" filter or with "sinceTimePeriod" and
"lastTimePeriod" filters. A sinceTimePeriod = 2000
returns
observations from 2000 to a last available. A lastTimePeriod = 10
returns a 10 last observations.
To use a proxy to connect, a httr::use_proxy()
can be
passed to httr::GET()
. For example
get_eurostat_json(id, filters, config = httr::use_proxy(url, port, username, password))
.
References
See citation("eurostat")
:
#
# Kindly cite the eurostat R package as follows:
#
# (C) Leo Lahti, Janne Huovari, Markus Kainu, Przemyslaw Biecek.
# Retrieval and analysis of Eurostat open data with the eurostat
# package. R Journal 9(1):385-392, 2017. doi: 10.32614/RJ-2017-019
# Package URL: http://ropengov.github.io/eurostat Article URL:
# https://journal.r-project.org/archive/2017/RJ-2017-019/index.html
#
# A BibTeX entry for LaTeX users is
#
# @Article{,
# title = {Retrieval and Analysis of Eurostat Open Data with the eurostat Package},
# author = {Leo Lahti and Janne Huovari and Markus Kainu and Przemyslaw Biecek},
# journal = {The R Journal},
# volume = {9},
# number = {1},
# pages = {385--392},
# year = {2017},
# doi = {10.32614/RJ-2017-019},
# url = {https://doi.org/10.32614/RJ-2017-019},
# }
See also
Eurostat Data Browser online help: API Statistics - data query: https://wikis.ec.europa.eu/display/EUROSTATHELP/API+Statistics+-+data+query
Eurostat Data Browser online help: migrating from JSON web service to API Statistics: https://wikis.ec.europa.eu/display/EUROSTATHELP/API+Statistics+-+migrating+from+JSON+web+service+to+API+Statistics
Examples
if (FALSE) {
# Generally speaking these queries would be done through get_eurostat
tmp <- get_eurostat_json("nama_10_gdp")
yy <- get_eurostat_json("nama_10_gdp", filters = list(
geo = c("FI", "SE", "EU28"),
time = c(2015:2023),
lang = "FR",
na_item = "B1GQ",
unit = "CLV_I10"
))
# TIME_PERIOD filter works also with the new JSON API
yy2 <- get_eurostat_json("nama_10_gdp", filters = list(
geo = c("FI", "SE", "EU28"),
TIME_PERIOD = c(2015:2023),
lang = "FR",
na_item = "B1GQ",
unit = "CLV_I10"
))
# An example from get_eurostat
dd <- get_eurostat("nama_10_gdp",
filters = list(
geo = "FI",
na_item = "B1GQ",
unit = "CLV_I10"
))
}