Extracts the data values from the SDMX XML data file

extract_data(
  xml_lf,
  keep_flags = FALSE,
  stringsAsFactors = FALSE,
  bulk = TRUE,
  check_toc = FALSE
)

Arguments

xml_lf

an input XML leaf with data series from an SDMX XML file to extract the value and its dimensions from it

keep_flags

a logical value if to extract the observation status (flag) information from the XML file. The default value is FALSE

stringsAsFactors

a logical value. If TRUE the columns are converted to factors. The default is FALSE, in this case the strings are returned as characters.

bulk

a logical value with default value TRUE if the input SDMX XML file is from the bulk download facility containing all the observations. If the input file has pre-filtered values then the value FALSE should be used.

check_toc

if the data file was downloaded using the URL from the TOC or not. The default is FALSE means not the TOC link is used.

Value

a data frame containing the values of an SDMX node: the dimensions, value and the optional flag(s)

Details

It is a sub-function to use in the get_eurostat_data and the get_eurostat_raw functions.

Examples

# \donttest{
id<-"agr_r_milkpr"
url<-paste0("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/",
            id,
            "?format=sdmx_2.1_structured&compressed=true")
if (!(grepl("amzn|-aws|-azure ",Sys.info()['release']))) options(timeout=2)
  sdmx_xml<-get_compressed_sdmx(url,verbose=TRUE)
#> 
#> get_compressed_sdmx - url:https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/agr_r_milkpr?format=sdmx_2.1_structured&compressed=true
#> get_compressed_sdmx - format:gz
#> get_compressed_sdmx - xml NULL:FALSE
  xml_leafs<-xml2::xml_find_all(sdmx_xml,".//Series")
  extract_data(xml_leafs[1])
#>   geo milkitem freq dairyprod TIME_PERIOD OBS_VALUE
#> 1  AL      PRO    A    D1110A        2021    859.38
#> 2  AL      PRO    A    D1110A        2022    824.94
#> 3  AL      PRO    A    D1110A        2023    765.35
options(timeout=60)
# }