-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathprojekt.Rmd
103 lines (78 loc) · 4.03 KB
/
projekt.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
---
title: "Poročilo pri predmetu Analiza podatkov s programom R"
author: "Študent FMF"
output:
html_document: default
pdf_document:
includes:
in_header: lib/styles.sty
latex_engine: xelatex
runtime: shiny
---
```{r setup, echo=FALSE, results='hide', message=FALSE}
# Če želimo nastaviti pisave v PDF-ju, odkomentiramo
# in sledimo navodilom v programu.
#source("fontconfig.r", encoding = "UTF-8")
# Uvoz vseh potrebnih knjižnic
source("lib/libraries.r", encoding = "UTF-8")
```
# Izbira teme
Za vzorec bomo prikazali nekaj podatkov o slovenskih občinah.
***
# Obdelava, uvoz in čiščenje podatkov
```{r uvoz, echo=FALSE, message=FALSE}
source("uvoz/uvoz.r", encoding = "UTF-8")
```
Uvozili smo podatke o občinah v obliki CSV s statističnega urada ter v obliki HTML
z Wikipedije. Podatke imamo v dveh razpredelnicah v obliki *tidy data*.
1. `druzine` - podatki o družinah za vsako občino
- `obcina` - spremenljivka: ime občine (neurejen faktor),
- `velikost.druzine` - spremenljivka: število otrok v družini (število: 1, 2, 3 ali 4, kjer zadnja vrednost pomeni 4 ali več),
- `stevilo.druzin` - meritev: število družin z ustreznim številom otrok v ustrezni občini (število).
2. `obcine` - podatki o občinah
- `obcina` - spremenljivka: ime občine (neurejen faktor),
- `povrsina` - meritev: površina občine v km$^2$ (število),
- `prebivalci` - meritev: prebivalstvo občine (število),
- `gostota` - meritev: število prebivalcev na km$^2$ (število),
- `naselja` - meritev: število naselij v občini (število),
- `ustanovitev` - meritev: leto ustanovitve občine (število),
- `pokrajina` - meritev: pokrajina, ki ji občina pripada (neurejen faktor),
- `regija` - meritev: regija, ki ji občina pripada (neurejen faktor),
- `odcepitev` - meritev: podatki o občinah, od katerih se je občina odcepila (besedilo).
**Opomba**: da bi razpredelnica `obcine` res bila v obliki *tidy data*, bi morali odstraniti stolpec `gostota` (saj je izpeljan iz stolpcev `povrsina` in `prebivalci`), podatke o pokrajinah pa bi morali premakniti v drugo razpredelnico, saj nekatere občine pripadajo dvema pokrajinama. Podobno bi morali narediti tudi s stolpcem `odcepitev`.
Spodnji graf prikazuje porazdelitev števila naselij v občinah.
```{r histogram, echo=FALSE, message=FALSE, fig.align='center', fig.cap='Histogram števila naselij v občinah'}
ggplot(obcine, aes(x = naselja)) + geom_histogram() +
ggtitle("Pogostost števila naselij") + xlab("Število naselij") + ylab("Število občin")
```
***
# Analiza in vizualizacija podatkov
```{r vizualizacija, echo=FALSE, message=FALSE, warning=FALSE}
source("vizualizacija/vizualizacija.r", encoding = "UTF-8")
```
Spodnji zemljevid prikazuje povprečno velikost družine za vsako občino.
```{r zemljevid, echo=FALSE, fig.align='center', fig.cap='Zemljevid povprečnega števila otrok v družini'}
ggplot() + geom_polygon(data = left_join(zemljevid, povprecja, by = c("OB_UIME" = "obcina")),
aes(x = long, y = lat, group = group, fill = povprecje)) +
ggtitle("Povprečno število otrok v družini") + xlab("") + ylab("") +
guides(fill = guide_colorbar(title = "Povprečje"))
```
***
# Napredna analiza podatkov
```{r analiza, echo=FALSE, message=FALSE}
source("analiza/analiza.r", encoding = "UTF-8")
```
Spodnji graf prikazuje povezavo med številom naselij in površino občine.
```{r graf, echo=FALSE, fig.align='center', fig.cap='Povezava med številom naselij in površino občine'}
ggplot(inner_join(obcine, data.frame(obcina = names(skupine),
skupina = factor(skupine)), by = "obcina")
, aes(x = povrsina, y = naselja, color = skupina, size = prebivalci/1000)) + geom_point() +
ggtitle("Število naselij glede na površino občine") +
xlab(expression("Površina (km"^2 * ")")) + ylab("Št. naselij") +
guides(color = guide_legend(title = "Skupina"),
size = guide_legend(title = "Prebivalci (* 1000)"))
```
***
```{r shiny, echo = FALSE}
shinyAppDir("shiny", options=list(width="100%", height=600))
```