-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
326 lines (282 loc) · 18.2 KB
/
index.html
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
<!DOCTYPE html>
<html lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Urejanje podatkov</title>
<meta name="description" content="Gradivo za delavnico Urejanje podatkov pobude DataScience@UL-FRI." />
<meta name="generator" content="bookdown 0.22 and GitBook 2.6.7" />
<meta property="og:title" content="Urejanje podatkov" />
<meta property="og:type" content="book" />
<meta property="og:description" content="Gradivo za delavnico Urejanje podatkov pobude DataScience@UL-FRI." />
<meta name="github-repo" content="rstudio/bookdown-demo" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Urejanje podatkov" />
<meta name="twitter:description" content="Gradivo za delavnico Urejanje podatkov pobude DataScience@UL-FRI." />
<meta name="author" content="Gregor Pirš, Matej Pičulin in Erik Štrumbelj" />
<meta name="date" content="2021-06-02" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="next" href="slovnica-urejanja-podatkov.html"/>
<script src="libs/header-attrs-2.8/header-attrs.js"></script>
<script src="libs/jquery-2.2.3/jquery.min.js"></script>
<link href="libs/gitbook-2.6.7/css/style.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
<link href="libs/anchor-sections-1.0.1/anchor-sections.css" rel="stylesheet" />
<script src="libs/anchor-sections-1.0.1/anchor-sections.js"></script>
<style type="text/css">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<style type="text/css">
/* Used with Pandoc 2.11+ new --citeproc when CSL is used */
div.csl-bib-body { }
div.csl-entry {
clear: both;
}
.hanging div.csl-entry {
margin-left:2em;
text-indent:-2em;
}
div.csl-left-margin {
min-width:2em;
float:left;
}
div.csl-right-inline {
margin-left:2em;
padding-left:1em;
}
div.csl-indent {
margin-left: 2em;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
<div class="book-summary">
<nav role="navigation">
<ul class="summary">
<li><a href="./">Urejanje podatkov</a></li>
<li class="divider"></li>
<li class="chapter" data-level="1" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i><b>1</b> Uvod</a>
<ul>
<li class="chapter" data-level="1.1" data-path="index.html"><a href="index.html#struktura-te-knjige"><i class="fa fa-check"></i><b>1.1</b> Struktura te knjige</a></li>
</ul></li>
<li class="chapter" data-level="2" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html"><i class="fa fa-check"></i><b>2</b> Slovnica urejanja podatkov</a>
<ul>
<li class="chapter" data-level="2.1" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#predpriprava"><i class="fa fa-check"></i><b>2.1</b> Predpriprava</a></li>
<li class="chapter" data-level="2.2" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#moderna-razpredelnica-tibble"><i class="fa fa-check"></i><b>2.2</b> Moderna razpredelnica: <code>tibble</code></a></li>
<li class="chapter" data-level="2.3" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#urejeno-ovrednotenje"><i class="fa fa-check"></i><b>2.3</b> Urejeno ovrednotenje</a></li>
<li class="chapter" data-level="2.4" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#izbira-vrstic-s-filter"><i class="fa fa-check"></i><b>2.4</b> Izbira vrstic s <code>filter()</code></a>
<ul>
<li class="chapter" data-level="2.4.1" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#manjkajoče-vrednosti"><i class="fa fa-check"></i><b>2.4.1</b> Manjkajoče vrednosti</a></li>
</ul></li>
<li class="chapter" data-level="2.5" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#izbira-stolpcev-s-select"><i class="fa fa-check"></i><b>2.5</b> Izbira stolpcev s <code>select()</code></a></li>
<li class="chapter" data-level="2.6" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#urejanje-vrstic-z-arrange"><i class="fa fa-check"></i><b>2.6</b> Urejanje vrstic z <code>arrange()</code></a></li>
<li class="chapter" data-level="2.7" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#dodajanje-novih-spremenljivk-z-mutate"><i class="fa fa-check"></i><b>2.7</b> Dodajanje novih spremenljivk z <code>mutate()</code></a></li>
<li class="chapter" data-level="2.8" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#povzemanje-vrednosti-s-summarise"><i class="fa fa-check"></i><b>2.8</b> Povzemanje vrednosti s <code>summarise()</code></a></li>
<li class="chapter" data-level="2.9" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#pipe"><i class="fa fa-check"></i><b>2.9</b> Pipe</a></li>
<li class="chapter" data-level="2.10" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#filter-in-mutate-na-grupiranih-podatkih"><i class="fa fa-check"></i><b>2.10</b> <code>filter()</code> in <code>mutate()</code> na grupiranih podatkih</a></li>
<li class="chapter" data-level="2.11" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#izvajanje-operacij-nad-večimi-stolpci-z-across"><i class="fa fa-check"></i><b>2.11</b> Izvajanje operacij nad večimi stolpci z <code>across()</code></a></li>
<li class="chapter" data-level="2.12" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#povzemanje-stolpcev"><i class="fa fa-check"></i><b>2.12</b> Povzemanje stolpcev</a></li>
<li class="chapter" data-level="2.13" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#povzemanje-vrstic"><i class="fa fa-check"></i><b>2.13</b> Povzemanje vrstic</a></li>
<li class="chapter" data-level="2.14" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#dodatek"><i class="fa fa-check"></i><b>2.14</b> Dodatek</a>
<ul>
<li class="chapter" data-level="2.14.1" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#zamenjava-vrstnega-reda-stolpcev"><i class="fa fa-check"></i><b>2.14.1</b> Zamenjava vrstnega reda stolpcev</a></li>
<li class="chapter" data-level="2.14.2" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#preimenovanje-stolpcev"><i class="fa fa-check"></i><b>2.14.2</b> Preimenovanje stolpcev</a></li>
<li class="chapter" data-level="2.14.3" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#summarise-in-group-unpeeling"><i class="fa fa-check"></i><b>2.14.3</b> Summarise in group unpeeling</a></li>
</ul></li>
<li class="chapter" data-level="2.15" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#nadaljnje-branje"><i class="fa fa-check"></i><b>2.15</b> Nadaljnje branje</a></li>
<li class="chapter" data-level="2.16" data-path="slovnica-urejanja-podatkov.html"><a href="slovnica-urejanja-podatkov.html#domača-naloga"><i class="fa fa-check"></i><b>2.16</b> Domača naloga</a></li>
</ul></li>
<li class="divider"></li>
<li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">Urejanje podatkov</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal" id="section-">
<div id="header">
<h1 class="title">Urejanje podatkov</h1>
<p class="author"><em>Gregor Pirš, Matej Pičulin in Erik Štrumbelj</em></p>
<p class="date" style="margin-top: 1.5em;"><em>2021-06-02</em></p>
</div>
<div id="intro" class="section level1" number="1">
<h1><span class="header-section-number">Poglavje 1</span> Uvod</h1>
<p>Pri delu s podatki se srečamo z večimi izzivi. Velikokrat je prvi izziv kako priti do podatkov. Takoj za tem pa se soočimo z drugim izzivom, ki je včasih celo največji – čiščenje in urejanje podatkov. Veliko podatkov, ki jih dobimo v izvorni obliki je <strong>neurejenih</strong> (ang. <strong>messy</strong> data). Včasih soočanje s tema izzivoma lahko traja tudi 80 odstotkov časa ali celo več.</p>
<p>Delavnica je namenjena spoznanju uporabnih konceptov za čiščenje in urejanje podatkov, ki nam bodo olajšali nadaljnjo analizo in vizualizacijo. Vse koncepte bomo tudi prikazali v programskem jeziku R. Cilji delavnice so:</p>
<ol style="list-style-type: decimal">
<li>Spoznati koncepte najbolj uporabnih funkcij za urejanje podatkov.</li>
<li>Spoznati t. i. <strong>urejene</strong> (ang. <strong>tidy</strong>) podatke.</li>
<li>Spoznati sistematično delo z datumi, nizi in kategoričnimi spremenljivkami.</li>
</ol>
<p>Za namen celostnega dela s podatki v R-ju je bil razvit skupek paketov, ki se imenuje <strong>tidyverse</strong>. Sestavljen je iz 8 temeljnih paketov:</p>
<ul>
<li><strong>ggplot2</strong>. Vizualizacija podatkov s <strong>slovnico grafike</strong> (ang. <strong>grammar of graphics</strong>).</li>
<li><strong>dplyr</strong>. Lažje urejanje podatkov, na primer izbiranje vrstic in stolpcev, dodajanje stolpcev, povzemanje in urejanje podatkov. Ta paket je glavna tema 1. predavanja.</li>
<li><strong>tidyr</strong>. Preoblikovanje podatkov med dolgo in široko obliko, oziroma preoblikovanje podatkov v urejeno obliko. Več o tem bomo povedali na 2. predavanju.</li>
<li><strong>readr</strong>. Učinkovito branje in shranjevanje podatkov.</li>
<li><strong>purrr</strong>. Funkcijsko programiranje v R.</li>
<li><strong>tibble</strong>. Moderna verzija <code>data.frame</code>. Tema 1. predavanja.</li>
<li><strong>stringr</strong>. Preprostejše delo z nizi. Tema 3. predavanja.</li>
<li><strong>forcats</strong>. Preprostejše delo s kategoričnimi spremenljivkami. Tema 3. predavanja.</li>
</ul>
<p>Vseh 8 temeljnih paketov lahko namestimo z enim ukazom.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="index.html#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">install.packages</span>(<span class="st">"tidyverse"</span>)</span></code></pre></div>
<p>Lahko pa namestimo tudi samo posamezne pakete.</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="index.html#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">install.packages</span>(<span class="st">"dplyr"</span>)</span></code></pre></div>
<div id="struktura-te-knjige" class="section level2" number="1.1">
<h2><span class="header-section-number">1.1</span> Struktura te knjige</h2>
<p>Pri vsakem predavanju bomo imeli 3 sklope:</p>
<ol style="list-style-type: decimal">
<li><p><strong>Predpriprava.</strong> Ta sklop je namenjen temu, da se udeleženci pripravijo na predavanje. Ker bodo le-ta intenzivna in namenjena predstavitvi glavnih konceptov ter uporabi funkcij na praktičnih primerih, je dobro, da udeleženci poznajo osnovne klice uporabljenih funkcij. V predpripravi si bomo na prepostih podatkih pogledali kako izvajati osnovne klice funkcij v tidyverse. Predlagamo, da udeleženci ta sklop predelajo pred samim predavanjem. Na voljo bodo tudi videi, ki pokrivajo predpripravo, tako da lahko izberete, ali bose predelali zadevo samo z knjigo, ali pa si boste ogledali tudi video. Predpriprava bo trajala največ 30 minut. Povezavo do videjev bodo udeleženci dobili preko e-pošte.</p></li>
<li><p><strong>Predavanje.</strong> V tem sklopu bo zajeta vsebina posameznega predavanja in morda še kakšna dodatna snov, ki jo lahko udeleženci predelajo samostojno. Podrobneje bomo opisali posamezne koncepte in funkcije, ter vse skupaj prikazali na praktičnih primerih.</p></li>
<li><p><strong>Domača naloga.</strong> Na koncu vsakega predavanja bodo udeleženci dobili nekaj vaj za samostojno utrjevanje. Predlagamo, da jih poizkusite rešiti sami. V tej knjigi bodo prikazani samo rezultati rešitev brez postopka oziroma programske kode. V kolikor se vam zatakne se lahko vedno obrnete na nas, lahko pa tudi preverite rešitev v izvornih Rmd datotekah, ki se nahajajo na repozitoriju. Nekatere naloge bodo od vas zahtevale tudi da kakšno zadevo poiščete oziroma raziščete sami (z uporabo spleta), kot smo to navajeni pri vsakodnevnem programerskem delu. Domača naloga vsakega sklopa bo sestavljena iz nekaj osnovnih nalog, ki bodo v glavnem ponovile, kar bomo predelali na predavanjih. Poleg teh pa bodo tudi težje naloge pri kateri bo potrebno koncepte uporabiti na kakšni realni podatkovni množici in samostojno rešiti nekatere probleme, ki jih na samem predavanju ne bomo eksplicitno predelali.</p></li>
</ol>
</div>
</div>
</section>
</div>
</div>
</div>
<a href="slovnica-urejanja-podatkov.html" class="navigation navigation-next navigation-unique" aria-label="Next page"><i class="fa fa-angle-right"></i></a>
</div>
</div>
<script src="libs/gitbook-2.6.7/js/app.min.js"></script>
<script src="libs/gitbook-2.6.7/js/lunr.js"></script>
<script src="libs/gitbook-2.6.7/js/clipboard.min.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-search.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-sharing.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-bookdown.js"></script>
<script src="libs/gitbook-2.6.7/js/jquery.highlight.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-clipboard.js"></script>
<script>
gitbook.require(["gitbook"], function(gitbook) {
gitbook.start({
"sharing": {
"github": false,
"facebook": true,
"twitter": true,
"linkedin": false,
"weibo": false,
"instapaper": false,
"vk": false,
"whatsapp": false,
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
},
"fontsettings": {
"theme": "white",
"family": "sans",
"size": 2
},
"edit": {
"link": "https://github.com/rstudio/bookdown-demo/edit/master/index.Rmd",
"text": "Edit"
},
"history": {
"link": null,
"text": null
},
"view": {
"link": null,
"text": null
},
"download": ["bookdown-demo.pdf", "bookdown-demo.epub"],
"toc": {
"collapse": "subsection"
}
});
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
var src = "true";
if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
if (location.protocol !== "file:")
if (/^https?:/.test(src))
src = src.replace(/^https?:/, '');
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>