Read sdmx data into dataframes from either a local SDMX-ML file or from a SDMX web-service:
<-
u "https://stats.oecd.org/restsdmx/sdmx.ashx/GetData/HH_DASH/..Q"
<- readsdmx::read_sdmx(u) d
The RapidXML C++ library is used to parse the data.
From CRAN:
install.packages("readsdmx")
From GitHub:
::install_github("mdequeljoe/readsdmx") devtools
The follow data message types are supported:
For the above example (locally):
download.file(u, path <- tempfile(fileext = ".xml"), quiet = TRUE)
::microbenchmark(
microbenchmarkreadsdmx = readsdmx::read_sdmx(path),
rsdmx = as.data.frame(rsdmx::readSDMX(path, FALSE)),
times = 5L,
unit = "s"
)
#> Unit: seconds
#> expr min lq mean median uq max neval
#> readsdmx 0.152 0.153 0.159 0.161 0.165 0.165 5
#> rsdmx 23.955 24.578 24.732 24.937 25.005 25.185 5
pandasdmx (python)