Download Data Structure Definition (DSD) of a Eurostat dataset if it is not cached previously.

get_eurostat_dsd(
  id,
  lang = "en",
  cache = TRUE,
  update_cache = FALSE,
  cache_dir = NULL,
  compress_file = TRUE,
  verbose = FALSE,
  ...
)

Arguments

id

a character string with the id of the dataset. It is a value from the codename column of the get_eurostat_toc function.

lang

a character string either en, de or fr to define the language version for the name column of the DSD. It is used only in the new API. The default is en - English.

cache

a boolean whether to load/save the DSD from/in the cache or not. The default value is TRUE, so that the DSD is checked first in the cache and if does not exist then downloaded from Eurostat and cached.

update_cache

a boolean to update cache or not. The default value is FALSE, so the cache is not updated. Can be set also with options(restatapi_update=TRUE)

cache_dir

a path to a cache directory. The default is NULL, in this case the DSD is cached in the memory (in the '.restatapi_env'). Otherwise if the cache_dir directory does not exist it creates the 'restatapi' directory in the temporary directory from tempdir() to save the RDS-file. Directory can also be set with option(restatapi_cache_dir=...).

compress_file

a logical whether to compress the RDS-file in caching. Default is TRUE.

verbose

A boolean with default FALSE, so detailed messages (for debugging) will not printed. Can be set also with options(restatapi_verbose=TRUE)

...

parameter to pass on the load_cfg function

Value

If the DSD does not exist it returns NULL otherwise the result is a table with the 3 columns:

conceptThe name of the concepts in the order of the data structure
codeThe possible list of codes under the concept
nameThe name/description of the code

Details

The DSD is downloaded from Eurostat's website, through the REST API in XML (SDMX-ML) format.

References

For more information see the detailed documentation of the API.

Examples

# \dontshow{
if (parallel::detectCores()<=2){
   options(restatapi_cores=1)
}else{
   options(restatapi_cores=2)
}
# }
# \donttest{
if (!(grepl("amzn|-aws|-azure ",Sys.info()['release']))) options(timeout=2)
head(get_eurostat_dsd("med_rd6",lang="de",cache=FALSE,verbose=TRUE))
#> 
#> get_eurostat_dsd - API version:2
#> 
#> get_eurostat_dsd - Trying to download the DSD from: https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/med_rd6?references=children
#> get_eurostat_dsd - Warning by the download of the DSD file:
#> URL 'https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/med_rd6?references=children': Timeout of 2 seconds was reached
#> utils::download.file(dsd_endpoint, temp, dmethod)
#> 
#> get_eurostat_dsd - class(temp): character - is.na(temp): FALSE - file.size(temp): 393216 - temp: /tmp/Rtmp2iECG6/file1b04600205d
#> Trying to extract the DSD from: /tmp/Rtmp2iECG6/file1b04600205d
#> get_eurostat_dsd - Error during the extraction of the XML from the downloaded DSD file:
#> AttValue: ' expected [40]
#> read_xml.character(temp)
#> get_eurostat_dsd - The dsd_xml is NULL. Please check in a browser the url below. If it provides valid response you can try again to download the DSD.
#>  https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/med_rd6?references=children
#> NULL
options(timeout=60)
# }