jernejbanevec / APPR-2017

Repozitorij z gradivi za predmet Analiza podatkov s programom R v študijskem letu 2016/17
MIT License
0 stars 0 forks source link

problem pri uvozu podatkov oblike XML #1

Closed jernejbanevec closed 7 years ago

jernejbanevec commented 7 years ago

Pozdravljeni, ko s funkcijo iz knjižnice XML uvozim datoteko (datoteko pobrano v .xml obliki iz spletne strani http://data.un.org/Data.aspx?q=abortion&d=POP&f=tableCode%3a17), dobim samo strukture poimenovane in zato jih nemorem oštevilčit, saj tudi ko poizkušam s funkcijo xmlRoot mi ne dela, saj če prav razumem je to vse skupaj označeno kot en velik prostor.

jaanos commented 7 years ago

Najbolje bo, če delaš kar s funkcijami iz knjižnice rvest:

library(rvest)
xml <- file("podatki/UNdata_Export_20170503_165055282.xml") %>% read_xml()
records <- xml %>% xml_nodes(xpath="//record")
fields <- records[[1]] %>% xml_nodes(xpath="./field") %>% xml_attr("name")
data <- sapply(fields[-length(fields)], function(x) {
    sapply(records, . %>% xml_nodes(xpath=sprintf("./field[@name='%s']", x)) %>%
             xml_contents() %>% as.character())
  }) %>% data.frame()

Poiskali smo torej vse značke record, iz prve dobili imena stolpcev, potem pa sestavili razpredelnico tako, da smo podatke za vsak stolpec (brez zadnjega, kjer so samo opombe) pridobili iz značk field z ustrezno vrednostjo atributa name. V dobljeni razpredelnici so vsi stolpci znakovni, tako da je še potrebno opraviti ustrezne pretvorbe.

jernejbanevec commented 7 years ago

Super, to deluje. Nisem popolnoma razumel vseh korakov, tako da vas bom prosil na naslednjih vajah za obrazložitev. Najlepša hvala.