-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.Rmd
63 lines (48 loc) · 4.31 KB
/
index.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
---
title: "Urejanje podatkov"
author: "Gregor Pirš, Matej Pičulin in Erik Štrumbelj"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
output: bookdown::gitbook
documentclass: book
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
github-repo: rstudio/bookdown-demo
description: "Gradivo za delavnico Urejanje podatkov pobude DataScience@UL-FRI."
---
# Uvod {#intro}
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 **neurejenih** (ang. **messy** data). Včasih soočanje s tema izzivoma lahko traja tudi 80 odstotkov časa ali celo več.
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:
1) Spoznati koncepte najbolj uporabnih funkcij za urejanje podatkov.
2) Spoznati t. i. **urejene** (ang. **tidy**) podatke.
3) Spoznati sistematično delo z datumi, nizi in kategoričnimi spremenljivkami.
Za namen celostnega dela s podatki v R-ju je bil razvit skupek paketov, ki se imenuje **tidyverse**. Sestavljen je iz 8 temeljnih paketov:
- **ggplot2**. Vizualizacija podatkov s **slovnico grafike** (ang. **grammar of graphics**).
- **dplyr**. Lažje urejanje podatkov, na primer izbiranje vrstic in stolpcev, dodajanje stolpcev, povzemanje in urejanje podatkov. Ta paket je glavna tema 1. predavanja.
- **tidyr**. Preoblikovanje podatkov med dolgo in široko obliko, oziroma preoblikovanje podatkov v urejeno obliko. Več o tem bomo povedali na 2. predavanju.
- **readr**. Učinkovito branje in shranjevanje podatkov.
- **purrr**. Funkcijsko programiranje v R.
- **tibble**. Moderna verzija `data.frame`. Tema 1. predavanja.
- **stringr**. Preprostejše delo z nizi. Tema 3. predavanja.
- **forcats**. Preprostejše delo s kategoričnimi spremenljivkami. Tema 3. predavanja.
Vseh 8 temeljnih paketov lahko namestimo z enim ukazom.
```{r, eval = FALSE}
install.packages("tidyverse")
```
Lahko pa namestimo tudi samo posamezne pakete.
```{r, eval = FALSE}
install.packages("dplyr")
```
## Struktura te knjige
Pri vsakem predavanju bomo imeli 3 sklope:
1) **Predpriprava.** 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.
2) **Predavanje.** 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.
3) **Domača naloga.** 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.
```{r, echo = FALSE}
knitr::opts_chunk$set(
error = TRUE, # do not interrupt in case of errors
warnings = FALSE,
message = FALSE
)
```