Closed sarakovacic closed 6 years ago
Uvoz iz datoteke HTML lahko narediš tako, da funkciji read_html
podaš ime datoteke HTML.
Po branju tabele s html_table
dobiš razpredelnico, ki ima za vsako leto stolpca za površino in število. Da jo spraviš v obliko tidy data, bo treba leta spraviti v stolpec, ostala pa bosta stolpca za površino in število. Najlažje bo, če pretvorbo z melt
narediš za vsako podmnožico stolpcev posebej in nato dobljeni razpredelnici združiš z inner_join
:
regije <- read_html("podatki/regije.htm", encoding = "Windows-1250") %>%
html_node(xpath="//table") %>% html_table()
leta <- regije[1, ] %>% unlist()
stolpci <- regije[2, ] %>% unlist()
stolpci.povrsina <- grep("ha", stolpci)
stolpci.stevilo <- grep("kmetijskih", stolpci)
regije.povrsina <- regije[regije[, 1] == "Gozd", c(2, stolpci.povrsina)]
regije.stevilo <- regije[regije[, 1] == "Gozd", c(2, stolpci.stevilo)]
colnames(regije.povrsina) <- c("regija", leta[stolpci.povrsina])
colnames(regije.stevilo) <- c("regija", leta[stolpci.stevilo])
regije.tidy <- inner_join(melt(regije.povrsina, id.vars = "regija",
variable.name = "leto", value.name = "povrsina"),
melt(regije.stevilo, id.vars = "regija",
variable.name = "leto", value.name = "stevilo")) %>%
mutate(leto = parse_number(leto),
povrsina = parse_number(povrsina, na = "N"),
stevilo = parse_number(stevilo, na = "N"))
Encoding(regije.tidy$regija) <- "UTF-8"
Svetoval bi sicer tudi, da izločiš sumarne podatke (tam, kjer je regija enaka SLOVENIJA
) - opažam sicer, da se ti nekoliko razlikujejo od vsote posameznih podatkov v vsakem letu, tako da bi jih morda bilo koristno spraviti v drugo razpredelnico.
Pozdravljeni!
Sedaj razumem postopek branja tabele iz HTML, vendar koda ne deluje pravilno... R javlja napako, da tabela regije.tidy ne obstaja, prav tako ne pokaže tabele regije. Verjetno mi manjkajo katere knjižnice (ali paketi)?
Hvala za odgovor!
Sara
Meni deluje, če poženem samo uvozpodatkov.R
. Ali ti kakšno napako javi že prej (npr. pri definiciji razpredelnice regije.tidy
)?
Pozdravljeni! Ne vem kako naj uvozim tabelo, ki je shranjena na mojem računalniku kot html (torej nima linka). V mapi "podatki" je to datoteka regije.htm. Hvala za odgovor in lep pozdrav! Sara