Open VidStarc opened 9 years ago
Ko odpiraš issue, se sicer spodobi napisati, kje je problem.
V tvoji tabeli se podatki začnejo s tretjo vrstico. Nisem prepričan, zakaj, ampak če pri delanju seznama vzameš vrstice od tretje naprej, dobiš na začetku še en NULL
, tako da začneš s četrto vrstico. Podatki o kategoriji so v značkah <th>
, tako da pobereš tudi te, ko delaš seznam. V nekaterih vrsticah so še regije - te bo najbolje porezati in jih dodati na koncu kot nov stolpec, kjer bo ta podatek v vsaki vrstici. Imena stolpcev dobiš v drugi vrstici tabele.
uvozi.ovce <- function() {
url.ovce <- "podatki/stevilo-ovac.htm"
doc.ovce <- htmlTreeParse(url.ovce,
useInternalNodes=TRUE,encoding="Windows-1250")
tabela <- getNodeSet(doc.ovce,"//table")
vrstica <- getNodeSet(tabela[[1]], "./tr")
seznam <- lapply(vrstica[4:length(vrstica)-1], stripByPath, "./td|./th")
seznam <- lapply(seznam, function(x) x[(length(x)-7):length(x)])
matrika <- matrix(unlist(seznam),nrow=length(seznam),byrow=TRUE)
colnames(matrika) <- stripByPath(vrstica[[2]], ".//th")
return(data.frame(Regija = c(rep("Slovenija", 9),
rep("Vzhodna Slovenija", 9),
rep("Zahodna Slovenija", 9)),
Kategorija = matrika[,1],
apply(matrika[,2:8], 2, as.numeric)))
}
Datoteke v imeniku lib
so mišljene samo za definiranje funkcij, tako da bo bolje, če ta program vključiš drugje (npr. v uvoz.r
) in pokličeš funkcijo.
source("lib/xml.r")
cat("Uvažam podatke o stevilu ovac...razpredelnica stevilo.ovac\n")
stevilo.ovac<-uvozi.ovce()
Prikazovanje razpredelnice z View
je morda koristno, dokler pišeš program, a v končnem programu naj tega ne bo - njegov izhod so grafi, ki jih narediš iz uvoženih podatkov.
najlepša hvala. sedaj pa imam še eno vprašanje: kako bi naredil oz. vnesel črto povprečja pri grafu število goveda v letu 2007?
Vodoravno črto lahko dodaš na graf z abline
in parametrom h
:
abline(h = povprecje)
Odprl sem issue za popravke.