spelapovrzenic / APPR-2014-15

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

graf evropa/št.preb #9

Closed spelapovrzenic closed 9 years ago

spelapovrzenic commented 9 years ago

Pozdravljeni! Imam vprašanje, namreč svoj zemljevid, ki da dobim iz podatkov v tabeli eeuro, bi sedaj rada spremenila, namreč podatke v eeuro, bi delila z številom prebivalcev za leto 2005, da bodo ugotovitve bolj točne. Novo tebelo prebivalci sem že uvozila, podatki so sicer za več let, vendar bi za to normiranje uporabila samo stolpec za leto 2010, saj je najbližji. Sedaj me pa zanima, kako bi ustvarila novo tabelo, ki bo vsebovala imena držav ter vrednsot porabe za leto 2005 / povprečno št. prebivalcev med letom 2000 in 2010, za vse države. Kako bo parvilno da bo vzel obe vrednosti iz iste države, saj države niso v istem vrstnme redu? Najlepša hvala in lp Špela

spelapovrzenic commented 9 years ago

Potem me tudi zanima na predavanjih sta mi svatovala, da sledeči graf uredim tako, da bo bil od najmanjšega do največjega, torej posortiran. sama sem poskušala to narediti, vendar mi potem oznake ne označi pravilno. vrednosti ja, vendar je potem legenda napačna, saj ostane enaka kot prej. Sledeči graf: ---R--- barplot(as.matrix(regije[2:13,11]), beside=TRUE,legend.text = rownames(regije)[2:13], col=c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7","#FFFFCC","#FF33FF","#66FFFF","#FFCCFF"), xlim=c(0,23),main="Poraba vodovodne vode v gospodinjstvih na prebivalca (leto 2012)",ylab="m3/prebivalca") ---R---

jaanos commented 9 years ago

Glede na to, da so imena držav v obeh tabelah enaka, lahko uporabiš funkcijo match:

m <- match(row.names(eeuro), row.names(prebivalci))

Sedaj lahko poračunaš vektor s povprečjem populacije let 2000 in 2010 in ustrezno urejenimi državami, potem pa še normirano porabo vode:

povprecno.prebivalstvo <- apply(prebivalci[m, c("X2000", "X2010")], 1, mean)
poraba.prebivalca.2005 <- eeuro$X2005/povprecno.prebivalstvo

Pri urejanju stolpčnega grafa si pomagaš s funkcijo order, ki ti vrne ustrezno razvrstitev. To razvrstitev potem uporabiš tako pri podatkih, kot tudi pri imenih v legendi:

o <- order(regije[,11], decreasing = TRUE)
o <- o[o != 1] # znebimo se podatkov za celotno Slovenijo
barplot(as.matrix(regije[o,11]), beside=TRUE,legend.text = rownames(regije)[o], 
        col=c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", 
              "#D55E00", "#CC79A7","#FFFFCC","#FF33FF","#66FFFF","#FFCCFF"),
        xlim=c(0,23),main="Poraba vodovodne vode v gospodinjstvih na prebivalca (leto 2012)",ylab="m3/prebivalca")

Mimogrede, če hočeš, da ti kodo v R-ju lepo prikaže, pred njo postaviš vrstico

```R

za njo pa vrstico



S klikom na _Preview_ lahko pogledaš, kako bo izgledalo.
spelapovrzenic commented 9 years ago

Najlepša hvala! Še eno vprašanje, namreč na predavanjih smo omenili za si lahko z library(impute) pomagamo,da zapolnimo tiste prostorčke v tabelah, ki nimajo podatkov, saj tako lahko analiziramo lažje stvari v 4. fazi. Pa me zanima če mi lahko prosim še enkrat razložite, npr jaz bi pogrupirala reke, vendar ne gre saj imajo nekateri NA podatke. Zgled

h <- hclust(dist(scale(porecja[1:20,])))
plot(h, hang=-1)
jaanos commented 9 years ago

Če si uvozila knjižnico impute, lahko gručenje narediš tako:

h <- hclust(dist(impute.knn(scale(porecja[1:20,]))$data))

Tukaj sicer dobiš opozorilo, da imaš vrstice, kjer manjka več kot polovica podatkov - take bi morda veljalo vseeno izpustiti.

Knjižnice impute sicer ni mogoče namestiti po navadni poti, lahko pa jo namestiš z naslednjima ukazoma:

source("http://bioconductor.org/biocLite.R")
biocLite("impute")

Potem jo lahko uvoziš z ukazom library.

spelapovrzenic commented 9 years ago

uredila, hvala!