在 R 中使用 RSDMX 将 SDMX 转换为数据帧

SDMX to dataframe with RSDMX in R

我正在尝试从立陶宛统计部门获取数据。他们提供带有 XML 或 JSON (LSD) 的 SDMX API。

显示的示例 XML 是:https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217 下载 XML 文件。

我试过以下方法:

devtools::install_github("opensdmx/rsdmx")
library(rsdmx)
string <- "https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217"
medianage <- readSDMX(string)

导致错误:

<simpleError in doTryCatch(return(expr), name, parentenv, handler): Invalid SDMX-ML file>

我也试过简单地读取手动下载的文件

devtools::install_github("opensdmx/rsdmx")
library(rsdmx)
medianage <- readSDMX(file="rest_data_M3010217_20180116163251.xml" , isURL = FALSE)
medianage <- as.data.frame(medianage)

结果中位数为 NULL(空)

也许有人有想法,我可以使用以下任一方法解决从 LSD 下载/转换数据的问题:

https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217
https://osp-rs.stat.gov.lt/rest_json/data/S3R629_M3010217 

非常感谢!

为了将 rsdmx 用于此数据源,添加了一些增强功能(请参阅 https://github.com/opensdmx/rsdmx/issues/141 处的详细信息)。您需要从 Github(版本 0.5-11)

重新安装 rsdmx

可以使用SDMX-ML文件的url

library(rsdmx)
url <- "https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217"
medianage <- readSDMX(url)
df <- as.data.frame(medianage)

在 rsdmx 中添加了一个连接器,以方便在 LSD(立陶宛统计局)SDMX 端点上进行数据查询。请参阅下面的示例,了解如何使用它。

sdmx <- readSDMX(providerId = "LSD", resource = "data",
flowRef = "S3R629_M3010217", dsd = TRUE)
df <- as.data.frame(sdmx, labels = TRUE)

以上示例展示了如何使用从 SDMX 数据结构定义 (DSD) 中提取的代码标签来丰富 data.frame。为此,指定 dsd = TRUEreadSDMX。这允许在转换为 data.frame 时使用 labels = TRUE。用于使用 readSDMX 过滤数据,例如(startPeriod、endPeriod、代码过滤器),查看此页面 https://github.com/opensdmx/rsdmx/wiki#readsdmx-as-helper-function