Closed PiaM123 closed 8 years ago
Pri uvozu iz HTML ne pretvoriš nizov v števila, zato ti graf prikazuje vrednosti kot nize.
Najlažje bo, če to urediš že v funkciji, kjer uvažaš. Po tem, ko definiraš spremenljivko matrika
, lahko končaš funkcijo z
matrika <- apply(matrika[-nrow(matrika),], 2, as.numeric)
colnames(matrika) <- gsub("\n", " ", stripByPath(vrstice[[3]], ".//th"))[2:4]
return(
data.frame("Stevilo oseb z osnovnosolsko izobrazbo" = matrika[,1], "Stevilo oseb s srednjesolsko izobrazbo" = matrika[,2], "Stevilo oseb z visokosolsko izobrazbo" = matrika[,3], row.names=1:4)
)
Tukaj je že poskrbljeno za brisanje zadnje vrstice, tako da tega potem ne narediš še enkrat. Potem bi ti moralo pravilno izrisati graf - namesto parametra color
lahko uporabiš fill
, da ti pobarva stolpce, in ne samo obrobi.
Razlog, da ti na vrhu izriše grafe, je ta, da imaš v uvoz.r
ukaze print
, s katerimi izrisuješ grafe. Te odstrani, izrisuj samo v poročilu.
Če vstavim to noter mi ponovno javlja napako glede števila vrstic. Ostalo pa sem porihtala, hvala.
Kot sem napisal, je sedaj odveč vrstica
MoskiSlovenija <- MoskiSlovenija[-nrow(MoskiSlovenija),]
Isto naredi še za ZenskeSlovenija
.
V zadnjem commitu grafov v poročilu ne izpisuješ, ker se ti ustrezni bloki kode ne izvedejo. Da se bodo izvedli, mora za ```stati vsaj še
{r}, lahko pa je seveda zraven še oznaka bloka (ki se mora pojaviti samo enkrat) in ostali parametri (npr.
echo = FALSE`, da ti ne izpisuje samih ukazov).
Glede na to, da mi prevede poročilo, bom kar dodal povezavo. Če boš kaj spremenila, mi prosim javi, da jo posodobim.
Še vedno imam težave s tem: sedaj sem izbrisala "MoskiSlovenija <- MoskiSlovenija[-nrow(MoskiSlovenija),]" in dodala " matrika <- apply(matrika[-nrow(matrika),], 2, as.numeric) colnames(matrika) <- gsub("\n", " ", stripByPath(vrstice[[3]], ".//th"))[2:4] return( data.frame("Stevilo oseb z osnovnosolsko izobrazbo" = matrika[,1], "Stevilo oseb s srednjesolsko izobrazbo" = matrika[,2], "Stevilo oseb z visokosolsko izobrazbo" = matrika[,3], row.names=1:4) )" vendar mi še vedno ne dela, sedaj mi sploh tabele noče več prikazati.
Kaj natančno ne deluje - ali ti vrednosti nadomesti z NA
? Pri meni uvoz deluje - v funkciji uvozi.IzobrazbaMoskiSlovenija
sicer sedaj uvoziš datoteko podatki/IzobrazbaZenskeSlovenija.htm
, kar bo seveda treba popraviti.
Program uvoz.r
se sicer ustavi pri risanju grafov - funkciji je ime ggplot
, ne ggplot2
; sicer pa grafe tako ali tako rišeš v poročilu, tako da jih pobriši iz uvoz.r
. V poročilu bo sicer treba popraviti še bloke, da se bodo grafi dejansko izrisali.
Sedaj mi tabele delujejo vendar grafi ne. Tudi če spremenim iz ggplot2 v ggplot mi noče narisati grafov. Javi mi: Error in eval(expr, envir, enclos) : could not find function "ggplot" A vse kar je v povezavi z grafi izbrišem iz uvoz.r in zapišem v projekt.rmd? Kako pa se to popravi?
Vidim, da si iz uvoz.r
že pobrisala risanje grafov, kar je seveda v redu. Da ti bo graf izrisalo v poročilu, ustrezno začni blok kode, npr.
```{r graf1, echo=FALSE}
grafMS <- ggplot(MoskiSlovenija, aes(x = starost, y = Stevilo.moskih.z.visokosolsko.izobrazbo,)) +
geom_bar(stat = "identity") + theme_minimal() + aes(color=starost) +
labs(title="Število moških z visokošolsko izobrazbo v Sloveniji", y="Število")
print(grafMS)
Oznaka bloka (v tem primeru `graf1`) sicer ni obvezna, koristi pa pri grafih, saj se lahko sklicuješ nanje. Oznake morajo biti različne ter ne smejo vsebovati šumnikov ali presledkov (tudi med koncem oznake in vejico ne sme biti presledka).
Mimogrede, pri risanju grafov namesto `color` raje uporabi `fill`, da ti bo stolpce pobarvalo in ne le obrobilo.
Hvala, sem popravila, vendar mi poročila noče prevesti. Piše, da ne najde spremenljivke "starost".
Če uporabljaš to, kar si v zadnjem commitu dala v kodaprojekt.txt
, potem res nimaš stolpca starost
- očitno si uporabila starejšo verzijo svojega programa. Če uporabiš to, kar imaš v uvoz.r
(seveda s popravki iz #7), potem bi moralo delovati.
Trenutno ti še vedno javi napako, ker imaš v razpredelnici ZenskeSlovenija
stolpec Starost
z veliko začetnico, pri risanju grafa pa navajaš malo začetnico.
To sem popravila, pa mi še vedno noče prevesti poročila in še vedno mi izpiše, da ne najde vrednosti starost
Sem sedaj videla, da sem imela spodaj še enkrat napisano z malo začetnico, sedaj mi poročilo prevede. Zanima me samo še kako naj se znebim opozoril na vrhu poročila, sem že vse premaknila v lib pa mi jih še vedno izpisuje.
Pri bloku, kjer uvoziš libraries.r
, dodaj še parameter warning = FALSE
. Po potrebi lahko podobno narediš tudi drugod - čeprav je v tem primeru navadno bolje odkriti in odpraviti vzrok za opozorila (pri uvozu knjižnic gre večinoma le za to, da so bile prevedene z novejšo verzijo R-ja).
Najlepša hvala. Zanima me še kako bi lahko narisala graf, ki bi imel na x osi dve spremenljivki oz da bi imel podatke za moške in podatke za ženske posebaj, na y pa stopnjo izobrazbe.
Sem poskusila dati noter warning = FALSE pa mi javi napako.
Aja pa težavo imam tudi pri oznaka na grafu, saj mi namesto dejanskih števil, ki so v podatkih zapiše števila z "e".
Kam si pa dala warning = FALSE
? Tako bi moralo delovati:
```{r setup, echo=FALSE, results='hide', message=FALSE, warning=FALSE}
Sicer pa meni ne prevede poročila, ker imaš pri obeh grafih pri fill
stolpec starost
še vedno z malo začetnico.
Graf lahko z uporabo tidy data (glej #8) narišeš nekako takole:
ggplot(izobrazba.slovenija %>% filter(Leto == 2013) %>%
group_by(Spol, Stopnja.izobrazbe) %>% summarise(Skupaj = sum(Stevilo.oseb)/1000),
aes(x = Stopnja.izobrazbe, y = Skupaj, fill = Spol)) +
geom_bar(stat = "identity", position = "dodge")
Tukaj smo risali samo za leto 2013 (filter
), ločili po spolu in stopnji izobrazbe group_by
, ter skupine sešteli (torej za vse starostne skupine) in delili s 1000 (da se izogneš eksponentni notaciji). S position = "dodge"
določiš, naj bodo stolpci en zraven drugega - sicer bi bili en na drugem. Seveda bi bilo koristno nekje povedati (npr. v oznaki osi y), da gre tukaj za tisoče ljudi.
Najlepša hvala, sedaj mi deluje oz mi ne izpisuje več opozoril. Mi pa grafa noče narisati.
Katerega grafa ti ne nariše? Ko prevedem poročilo, mi namreč izriše oba grafa, ki sta tam.
Uspela sem narisati graf, vendar imam problem ker mi števila oseb z določeno izobrazbo ne razvrsti pravilno, ne gre od najmanjšega do največjega ali obratno, gre kar mešano tako kot je bilo v tabeli. Poleg tega mi kljub temu, da sem knjižnice premaknila, v poročilu na vrhu izpiše vse.