【发布时间】:2020-12-21 00:58:14
【问题描述】:
请看一下这个问题中的代表。 SDMX 是一种用于传播统计数据的数据模型,Python 和 R 中有工具可以处理它。 SDMX 通常以 XML 文件的形式提供(最近也以 JSON 文件的形式提供)。 我可以使用专用库处理 reprex 中的 url 中给出的简单示例,但我想了解发生了什么,所以我想使用 xml2 重现最终结果......这里是我的地方头靠墙。
原因是在不久的将来我可能必须处理与 SDMX 接近但不完全相同的复杂 XML 文件,这意味着我需要能够手动完成。 任何建议表示赞赏。 谢谢
library(tidyverse)
library(xml2)
library(rsdmx)
url <- "https://stats.oecd.org/restsdmx/sdmx.ashx/GetData/FDIINDEX/AUT+BEL.4+5+8+9+14.V.INDEX/all?startTime=1997&endTime=2019"
##Very easy if I resort to a dedicated library
sdmx <- readSDMX(url, isURL = T)
stats <- as_tibble(sdmx) ## and I have my nice tibble
print(stats)
#> # A tibble: 130 x 7
#> LOCATION SECTOR RESTYPE SERIES TIME_FORMAT obsTime obsValue
#> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
#> 1 AUT 4 V INDEX P1Y 1997 0
#> 2 AUT 4 V INDEX P1Y 2003 0
#> 3 AUT 4 V INDEX P1Y 2006 0
#> 4 AUT 4 V INDEX P1Y 2010 0
#> 5 AUT 4 V INDEX P1Y 2011 0
#> 6 AUT 4 V INDEX P1Y 2012 0
#> 7 AUT 4 V INDEX P1Y 2013 0
#> 8 AUT 4 V INDEX P1Y 2014 0
#> 9 AUT 4 V INDEX P1Y 2015 0
#> 10 AUT 4 V INDEX P1Y 2016 0
#> # … with 120 more rows
xmlobj <- read_xml(url)
## and then I do not know how to proceed...
由reprex package (v0.3.0) 于 2020 年 9 月 1 日创建
【问题讨论】:
-
你可以在github上阅读这些函数的源代码:readSDMX和as.data.frame.SDMXMessageGroup/as.data.frame.SDMXGenericData被
as_tibble调用。 -
正确。我会好好看看。
标签: r xml xml-parsing xml2