首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R-解析错误中读取SDMX?

在R-解析错误中读取SDMX?
EN

Stack Overflow用户
提问于 2015-02-21 05:52:39
回答 2查看 313关注 0票数 2

我一直试图通过他们最近推出的SDMX服务,在R中开发一个与INEGI (墨西哥统计局)数据有关的闪亮应用程序。我已经联系了开发人员自己,他们给了我以下不可行的代码:

代码语言:javascript
复制
require(devtools) 
require(RSQLite)
require(rsdmx)
require(RCurl)

url <- paste("http://www.snieg.mx/opendata/NSIRestService/Data/ALL,DF_PIB_PB2008,ALL/ALL/INEGI");
sdmxObj <- readSDMX(url)

df_pib <- as.data.frame(sdmxObj)

这就引出了以下错误:

代码语言:javascript
复制
sdmxObj <- readSDMX(url)
 Opening and ending tag mismatch: ad line 1 and Name
 Opening and ending tag mismatch: b3 line 1 and Name
 Opening and ending tag mismatch: b3 line 1 and Department
 Opening and ending tag mismatch: c3 line 1 and Contact
 Opening and ending tag mismatch: a1 line 1 and Sender
 Opening and ending tag mismatch: c3 line 1 and Header
 Opening and ending tag mismatch: b3 line 1 and GenericData

..。等等,你明白重点了。

我试着使用另一个url (也许这是为了更广泛,引入了每一个GDP计量),但我得到了同样的结果:

代码语言:javascript
复制
url<-"http://www.snieg.mx/opendata/NSIRestService/Data/ALL,DF_PIB_PB2008,ALL/.MX.........C05.......0101/INEGI?format=compact"

如果我直接用浏览器下载文件,我似乎得到了有用的结构。

有什么想法吗?这看起来像一个错误的定义直接从源或问题包"rsdmx",如果是,有人找到了正确的解析类似结构的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-23 09:39:14

你可以试试RJSDMX

要下载DF_PIB_PB2008数据流的所有时间序列,只需点击:

代码语言:javascript
复制
library(RJSDMX)
result = getSDMX('INEGI', 'DF_PIB_PB2008/.................')

或相当于:

代码语言:javascript
复制
result = getSDMX('INEGI', 'DF_PIB_PB2008/ALL')

如果你需要时间序列作为结果,你就完成了。Elseway,如果您喜欢data.frame,您可以让它调用:

代码语言:javascript
复制
dfresult = sdmxdf(result, meta=T)

您可以在项目维基中找到有关包及其配置的更多信息。

票数 0
EN

Stack Overflow用户

发布于 2015-03-17 16:42:16

上面粘贴的代码,使用rsdmx,工作非常好。你遇到的问题是关于你的工作场所防火墙,因为你正确地发现了。

您只需要加载rsdmx包(其他包不需要明确声明)

代码语言:javascript
复制
require(rsdmx)

然后执行以下代码:

代码语言:javascript
复制
url <- paste("http://www.snieg.mx/opendata/NSIRestService/Data/ALL,DF_PIB_PB2008,ALL/ALL/INEGI");
sdmxObj <- readSDMX(url)
df_pib <- as.data.frame(sdmxObj)

我已经检查过与此数据源相关的任何潜在问题,但没有。严格遵守您的帖子范围,您的代码就可以了。

尽管如此,如果您在rsdmx中发现了一个bug,您可以直接在https://github.com/opensdmx/rsdmx/issues上提交一张票,提示反馈会提供给用户。您也可以在那里或在rsdmx邮件列表中发送建议或希望的功能。

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

https://stackoverflow.com/questions/28642633

复制
相关文章

相似问题

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