首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用RSDMX将SDMX转换为数据帧

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

Stack Overflow用户
提问于 2018-01-17 12:40:36
回答 1查看 437关注 0票数 1

我在试着从立陶宛统计局得到数据。它们提供带有XML或JSON (LSD)的SDMX API。

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

我尝试了以下几点:

代码语言:javascript
复制
devtools::install_github("opensdmx/rsdmx")
library(rsdmx)
string <- "https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217"
medianage <- readSDMX(string)

这会导致错误:

代码语言:javascript
复制
<simpleError in doTryCatch(return(expr), name, parentenv, handler): Invalid SDMX-ML file>

我还尝试简单地读取手动下载的文件

代码语言:javascript
复制
devtools::install_github("opensdmx/rsdmx")
library(rsdmx)
medianage <- readSDMX(file="rest_data_M3010217_20180116163251.xml" , isURL = FALSE)
medianage <- as.data.frame(medianage)

导致medianage为NULL (空)

也许有人有一个想法,我如何解决下载/transforming数据从LSD使用以下两种方法之一:

代码语言:javascript
复制
https://osp-rs.stat.gov.lt/rest_xml/data/S3R629_M3010217
https://osp-rs.stat.gov.lt/rest_json/data/S3R629_M3010217 

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-04 06:05:08

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

您可以使用SDMX-ML文件的url

代码语言:javascript
复制
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端点上进行数据查询。有关如何使用它,请参见下面的示例。

代码语言:javascript
复制
sdmx <- readSDMX(providerId = "LSD", resource = "data",
flowRef = "S3R629_M3010217", dsd = TRUE)
df <- as.data.frame(sdmx, labels = TRUE)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48293717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档