将 SDMX 数据导入 R 时出错
Error importing SDMX data into R
当我尝试导入经合组织数据时出现问题。例如,如果我尝试以下代码:
library(rsdmx)
data.url <- "http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/QNA/AUS.B1_GE+P3+P31S14_S15+P3S13+P5+P51+P52_P53+P52+P53+B11+P6+P61+P62+P7+P71+P72+RB1_GE+PPPGDP+P41+P3_P51+P3_P5.CQRSA.Q/all?startTime=2011-Q1&endTime=2015-Q2"
my.sdmx <- readSDMX(data.url)
我收到以下错误
<XMLInputError: XML content does not seem to be XML: '<message:MessageGroup xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic" ...
然而,这似乎只发生在经合组织的数据上。如果我将上面的 data.url
替换为
data.url <- "http://data.fao.org/sdmx/repository/data/CROP_PRODUCTION/.156.5312../FAO?startPeriod=2008&endPeriod=2008"
然后代码运行流畅。如果我下载 XML 文件并使用 readSDMX('file.xml', isURL=FALSE)
解析它,它也会起作用。
我想知道这是否与解析 OECD XML 时出现的 '' 字符有关,是否有解决此问题的方法。
OECD 门户最近发生了一些变化。其中之一是网络请求没有 return 有效的 xml
响应。您提到的几个字符对应于字节顺序标记(BOM)。最近在 rsdmx 中添加了一个控件以正确管理此类 BOM,更改也已反映在 CRAN 中。升级到 rsdmx 0.4-7 将解决您的问题。
当我尝试导入经合组织数据时出现问题。例如,如果我尝试以下代码:
library(rsdmx)
data.url <- "http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/QNA/AUS.B1_GE+P3+P31S14_S15+P3S13+P5+P51+P52_P53+P52+P53+B11+P6+P61+P62+P7+P71+P72+RB1_GE+PPPGDP+P41+P3_P51+P3_P5.CQRSA.Q/all?startTime=2011-Q1&endTime=2015-Q2"
my.sdmx <- readSDMX(data.url)
我收到以下错误
<XMLInputError: XML content does not seem to be XML: '<message:MessageGroup xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic" ...
然而,这似乎只发生在经合组织的数据上。如果我将上面的 data.url
替换为
data.url <- "http://data.fao.org/sdmx/repository/data/CROP_PRODUCTION/.156.5312../FAO?startPeriod=2008&endPeriod=2008"
然后代码运行流畅。如果我下载 XML 文件并使用 readSDMX('file.xml', isURL=FALSE)
解析它,它也会起作用。
我想知道这是否与解析 OECD XML 时出现的 '' 字符有关,是否有解决此问题的方法。
OECD 门户最近发生了一些变化。其中之一是网络请求没有 return 有效的 xml
响应。您提到的几个字符对应于字节顺序标记(BOM)。最近在 rsdmx 中添加了一个控件以正确管理此类 BOM,更改也已反映在 CRAN 中。升级到 rsdmx 0.4-7 将解决您的问题。