58
Univerza v Novi Gorici Center za raziskave atmosfere R in RStudio - programsko okolje za statistiˇ cno obdelavo in grafiˇ cni prikaz podatkov Uvodni teˇ caj v analizo okoljskih podatkov na Fakulteti za znanosti o okolju dr. Asta Gregoriˇ c Maruˇ ska Mole, univ. dipl. meteor. Nova Gorica, oktober 2016

Univerza v Novi Gorici R in RStudio - programsko okolje za

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Univerza v Novi Gorici R in RStudio - programsko okolje za

Univerza v Novi GoriciCenter za raziskave atmosfere

R in RStudio - programsko okolje

za statisticno obdelavo in graficni prikaz podatkov

Uvodni tecaj v analizo okoljskih podatkovna Fakulteti za znanosti o okolju

dr. Asta GregoricMaruska Mole, univ. dipl. meteor.

Nova Gorica, oktober 2016

Page 2: Univerza v Novi Gorici R in RStudio - programsko okolje za

Kazalo

I Teoreticne osnove 3

1 Uvod v tecaj 41.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.1 Zakaj R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.2 Zakaj ne R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.3 Uporaba urejevalnika RStudio . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.4 Namestitev R in RStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.5 Nekaj uporabnih virov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.6 Preden zacnemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Osnovna uporaba R 92.1 R kot kalkulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Osnovne aritmeticne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.2 Komentarji in presledki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.3 Osnovne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.4 Logicne operacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Pomoc (?) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Paketi in knjiznice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Namestitev in nalaganje paketov . . . . . . . . . . . . . . . . . . . . . . . 132.3.2 Uporabni paketi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.3 Vzdrzevanje knjiznic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Osnovni elementi v R okolju - Objekti 153.1 Objekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Oblike objektov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3 Shranjevanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.1 Operacije z vektorji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Delo s podatki 244.1 Uvazanje podatkov v R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2 Urejanje podatkovnih okvirjev . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.1 Imena stolpcev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.2 Preurejanje vrstnega reda stolpcev . . . . . . . . . . . . . . . . . . . . . . 274.2.3 Ekstrakcija dolocenega dela podatkov . . . . . . . . . . . . . . . . . . . . 274.2.4 Prepoznavanje in pretvarjanje casovnega zapisa . . . . . . . . . . . . . . . 29

4.3 Zdruzevanje podatkovnih okvirjev . . . . . . . . . . . . . . . . . . . . . . . . . . 324.4 Izvazanje podatkov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5 Shranjevanje slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1

Page 3: Univerza v Novi Gorici R in RStudio - programsko okolje za

KAZALO KAZALO

5 Paket openair 345.1 Uvod v openair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.1.1 Nastavitev type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.1.2 Oblikovanje besedila na grafih - funkcija expression() . . . . . . . . . . 36

5.2 Primeri uporabe najosnovnejsih funkcij . . . . . . . . . . . . . . . . . . . . . . . 375.2.1 timeAverage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.2 summaryPlot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.2.3 timePlot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2.4 selectByDate() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.5 scatterPlot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2.6 windRose() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.2.7 timeVariation() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

II Prakticni primeri 53

6 Primeri 556.1 Prepoznavanje in spreminjanje casovnega zapisa . . . . . . . . . . . . . . . . . . 556.2 Urejanje in zdruzevanje podatkov . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.3 Analiza in prikaz meteoroloskih podatkov . . . . . . . . . . . . . . . . . . . . . . 556.4 Analiza in prikaz podatkov o kakovosti zraka . . . . . . . . . . . . . . . . . . . . 56

2

Page 4: Univerza v Novi Gorici R in RStudio - programsko okolje za

I

Teoreticne osnove

3

Page 5: Univerza v Novi Gorici R in RStudio - programsko okolje za

1

Uvod v tecaj

Tecaj je pripravljen za studente Okolja Fakultete za znanosti o okolju. Glavni namen tecajaje, da se studentje seznanijo z osnovnim delovanjem programskega okolja R in z orodji, ki sopredvsem uporabna za analizo in graficni prikaz okoljskih podatkov. Pridobljeno znanje bouporabno pri izvajanju dolocenih predmetov, kot sta na primer Hidrologija in Meteorologija.

Z napredkom na podrocju okoljskih meritev in zajema podatkov se pojavlja vse vecja potrebapo sistematskem, ucinkovitem in hitrem analiziranju podatkov. Zato se tudi na studijskemprogramu Okolje pojavlja nujnost vpeljevanja vsebin, povezanih z orodji in metodami za ob-delavo podatkov. Glede na omejitev moznosti uporabe placljivih programov (Microsoft Excel)in slabsih zmogljivosti nekaterih prosto dostopnih razlicic, je uporaba programskega okolja Rodlicna resitev.

Na tecaju se bodo udelezenci seznanili z osnovami programskega jezika R in graficnega okoljaRStudio in se naucili osnovnih prijemov pri organiziranju in graficnem prikazovanju podatkov.Poudarek bo predvsem na obdelavi casovnih vrst meteoroloskih podatkov in podatkov kakovostizraka z uporabo R paketa openair [1].

Prvi del tega gradiva zajema teoreticni pregled in razlago celotne vsebine, ki bo predstavljenana tecaju, v drugem delu pa so natancna navodila za izvedbo prakticnih primerov na podatkih,ki so priloga tega gradiva in so dostopni na spletni strani Fakultete za znanosti o okolju (Tekoceinformacije in dogodki) www.ung.si/sl/studij/fakulteta-za-znanosti-o-okolju/.

Slika 1.1: R konzola.

4

Page 6: Univerza v Novi Gorici R in RStudio - programsko okolje za

1.1. UVOD 1. UVOD V TECAJ

1.1 Uvod

R je tako programsko orodje kot tudi programski jezik, razvit za namen analize podatkov.Zasledimo lahko razlicne opise, kot na primer statisticni sistem, sistem za statisticno obdelavo invizualizacijo ali okolje za analizo podatkov in statistiko. Originalno izhaja iz jezika, imenovanegaS, ki so ga v 1970-ih letih razvili v Bell Laboratories, ZDA. V zadnjem desetletju se je R razvilv zelo zmogljiv prosto dostopen program, ki deluje na razlicnih operacijskih sistemih (Linux,Mac OS X, Windows). Ena izmed prednosti je razsirjena uporaba predvsem med raziskovalci,ki prispevajo k razvoju tega orodja, hkrati pa to pomeni, da je na svetovnem spletu objavljenihogromno resitev razlicnih problemov. Ena glavnih prednosti R je v sistemu delovanja v oblikipaketov, ki predstavljajo razsiritve osnovnega programa, ki je ze sam po sebi zmogljiv.

Glavna tezava, s katero se srecajo novi uporabniki programa R, je preklop s ”klikanja” na”tipkanje”. Povedano drugace: R je sam po sebi programski jezik brez graficnega uporabniskegavmesnika, kar predvsem zacetnikom, ki nimajo izkusenj s programiranjem, predstavlja nekolikovec tezav. Po drugi strani pa ravno to omogoca precej hitrejso obdelavo vecjih kolicin podatkov.Po morebitnih zacetnih tezavah, ko se seznanimo z osnovnimi prijemi, se hitrost ucenja inmoznosti uporabe izredno hitro vecajo.

1.1.1 Zakaj R?

Obstajajo stevilni razlogi, zakaj je R dobra izbira pri analizi podatkov:

� R je brazplacen ! Prav tako so brezplacne vse razsiritve. Zato postaja R vedno boljpriljubljeno orodje s sirokim spektrom uporabnikov, od univerz, raziskovalnih institucij dopodjetij.

� Deluje v razlicnih operacijskih sistemih (Windows, Mac OS X, Linux), kar omogoca pre-nosljivost in fleksibilnost. Je zelo robusten in stabilen.

� Razvit je bil prav za namen analize podatkov - hitra, efektivna in zanesljiva analiza.

� Sproti se nadgrajuje.

� Omogoca izvoz oblikovno izpopolnjenih graficnih prikazov. Obstaja cela vrsta paketov(vec kot 4000), ki omogocajo razlicne vrste analiznih tehnik. Stevilo uporabnikov hitroraste, zaradi cesar so na voljo stevilne knjige in spletne strani.

1.1.2 Zakaj ne R?

Seveda obstajajo tudi nekatere pomanjkljivosti:

� Zahtevno zacetno ucenje.

� Ni graficnega uporabniskega vmesnika (GUI - graphical user interface) - vse ukaze pisemo vkonzolo. Kljub temu, da se morda slisi precej staromodno, omogoca boljse sledenje potekudela (tezje je recimo opisati serijo klikov in izborov v opravilni vrstici).

1.1.3 Uporaba urejevalnika RStudio

Delo z R si lahko olajsamo z uporabo urejevalnika, kot je na primer RStudio (Slika 1.2). Veco urejevalniku si lahko preberete na spletni strani www.rstudio.com/home/.

Uporabnost urejevalnika RStudio:

� Deluje v razlicnih operacijskih sistemih (Windows, Mac S X, Linux).

5

Page 7: Univerza v Novi Gorici R in RStudio - programsko okolje za

1.1. UVOD 1. UVOD V TECAJ

Slika 1.2: Prikaz zaslona urejevalnika RStudio.

� V zgornjem levem kotu (Slika 1.2) so vidne podrobnosti objektov, ki smo jih vnesli v R(na sliki je tabela s podatki).

� V zgornjem desnem kotu so prikazani objekti, ki jih imamo v nasem delovnem okolju(tabele, funkcije,. . . ). Ce kliknemo na objekt, se le ta prikaze v levem zgornjem oknu.Zavihek ”history” vsebuje vse uporabljene ukaze. Lahko jih iscemo z iskalnikom in zdvojnim klikom prenesemo ponovno v konzolo ter izvrsimo ukaz.

� Spodaj levo je konzola, kamor pisemo ukaze. Dobra lastnost RStudia je, da ponudisamodejno dokoncanje ukazov in prikaze moznosti, kar olajsa zapisovanje.

� Okno v spodnjem desnem delu ima vec zavihkov:

– Files

– Plots - prikazovanje izrisanih grafov

– Packages - seznam nalozenih paketov

– Help

– Viewer

1.1.4 Namestitev R in RStudio

R in RStudio sta namescena na vseh racunalnikih v racunalniski ucilnici. Ce zelite namestitiprogram na svoj racunalnik, prilagamo tu kratka navodila.

1. Z brskalnikom odprite spletno stran ”The Comprehensive R Archive Network” (CRAN)cran.r-project.org/.

2. Na vrhu strani izberete vas operacijski sistem:

� Windows: Kliknete na povezavo do ”base” mape in nato na Download R 3.3.1 forWindows - to je najnovejsa verzija R (junij 2016).

6

Page 8: Univerza v Novi Gorici R in RStudio - programsko okolje za

1.1. UVOD 1. UVOD V TECAJ

� Mac OS X: Kliknite prvi link pod ”Files” in prenesite datoteko: R-3.3.1.pkg - to jenajnovejsa verzija R (junij 2016).

� Linux: Izberite mapo vase Linux distribucije in sledite navodilom.

3. Zazenite preneseno datoteko.

Po koncani namestitvi R je potrebno namestiti se RStudio Desktop razlicico:www.rstudio.com/products/rstudio/download/.

1.1.5 Nekaj uporabnih virov

Na vsako vprasanje v zvezi z R, ki ga boste imeli v prvem letu uporabe, boste zagotovo nasliodgovor na internetu. Poleg forumov obstaja ogromno navodil, clankov in knjig o uporabi R zarazlicne namene.

Na internetu:

� V 99,9% boste hitro nasli odgovor na vase vprasanje ali resitev problema z iskanjem prekoGoogla.

� Uradna navodila za R – na spletni strani www.r-project.org/ kliknite na ”Manuals” podnaslovom ”Documentation”. Na tej povezavi najdete uvodno gradivo in navodila za zah-tevnejse postopke.

� simpleR - Using R for Introductory Statistics (Verzani J., 2002)www.math.csi.cuny.edu/Statistics/R/simpleR/printable/simpleR.pdf

� Data analysis and visualisation with R - With a focus on Ecology and EnvironmentalScience (Duursma R., Powell J., Glenn S.)www.westernsydney.edu.au/ data/assets/pdf file/0011/830909/Rmanual 20160329.pdf

� Quick-R www.statmethods.net/index.html - spletna stran, ki omogoca enostavno spoz-navanje R.

Knjige:

� The R Book, Crawley M.J. 2007 [2]

� Introductory Statistics with R, Dalgaard P. 2008 [3]

� . . .

1.1.6 Preden zacnemo

V tem gradivu so zapisane vse informacije in vecina podrobnosti o postopkih, ki jih bomo natecaju obravnavali. Zato si ne potrebujete dodatno zapisovati, potrebno pa je slediti in sprotipisati ukaze v konzolo in spremljati kaj R izpise. Primeri vhodnih ukazov in izhodnih vrsticbodo izgledali takole:

> p r i n t ( ”Pa zacnimo ! ” )[ 1 ] ”Pa zacnimo ! ”

7

Page 9: Univerza v Novi Gorici R in RStudio - programsko okolje za

1.1. UVOD 1. UVOD V TECAJ

Ko pridemo do takih primerov, zapisite v R konzolo za znak > ukaz – v tem primeru:print("Pa zacnimo!") in nato pritisnete enter. R nato izpise: [1] "Pa zacnimo!". Znak >pomeni, da je R pripravljen na vnos ukaza. V anglescini temu pravimo “prompt”.

Bodite pozorni tudi na velike zacetnice, ker jih R razlikuje od malih crk.

Kot smo ze omenili, ima R zelo omejen GUI, zato bomo na tecaju za lazji pregled naddogajanjem uporabljali RStudio. Pri delu z R si moramo predvsem zapomniti, da je R ustvar-jen preprosto za izvrsevanje ukazov, kar pomeni, da ne shranjuje vseh nasih ukazov in slik. Vprimeru, da gre kaj narobe (zmanjka elektrike, pozabimo shraniti zadnjo R-sejo. . . ), izgubimovso napisano kodo in vlozen trud. Zato je dobro upostevati nasvet, da ukaze vedno pisemo vurejevalnik besedila in nato kopiramo v R konzolo, da izvrsi ukaz. Lahko pa delamo v obratnismeri, kar pomeni, da v R-konzolo pisemo ukaz, dokler nismo zadovoljni z izidom, in nato kodokopiramo v urejevalnik besedila (Wordpad, Notepad, Word. . . ). Najbolj prirocno je, ce uporabl-jamo skripto v RStudiu (Script). To je predvsem pomembno zato, da lahko kasneje vse deloponovimo.

8

Page 10: Univerza v Novi Gorici R in RStudio - programsko okolje za

2

Osnovna uporaba R

RStudio zazenemo z dvo-klikom na ikono na namizju

Ko se odpre okno RStudia, najprej odpremo nov projekt. Poskusite se drzati pravila, dastriktno uporabljate projekte, ki so loceni v mapah na racunalniku, saj le tako lahko locimodatoteke, ki jih ustvari RStudio in shranjujemo podatke v delovno mapo, ki jo doloca projekt.

File → New project → New directory → Empty project: (Slika 2.1).

Vpisemo ime mape, ki jo zelimo ustvariti (Directory name) in dolocimo mapo, v kateri zelimo,da RStudio ustvari projekt (Create project as subdirectory of).Za namen tecaja ustvarite mapo z vasim imenom na namizju racunalnika.

Slika 2.1: Ustvarjanje novega projekta.

2.1 R kot kalkulator

Za zacetek bomo ukaze pisali neposredno v R konzolo, prakticne primere iz II. dela te skriptepa boste pisali kot skripto, da se bo cel zapis kode ohranil. Natancna navodila sledijo kasneje.

9

Page 11: Univerza v Novi Gorici R in RStudio - programsko okolje za

2.1. R KOT KALKULATOR 2. OSNOVNA UPORABA R

2.1.1 Osnovne aritmeticne funkcije

Za razliko od programov, ki delujejo v obliki preglednic (npr. Excel), so v R vsi podatki,funkcije, spremenljivke. . . shranjeni v obliki razlicnih vrst objektov.

Poskusimo enostaven racun:

> 2 + 3[ 1 ] 5

R shranjuje vse spremenljivke, podatke, funkcije in rezultate v aktiven spomin racunalnika.V zgornjem primeru R pozna stevili 2 in 3 ter znak za sestevanje ”+”. V aktivni spomin shraniobjekt z rezultatom izracuna in hkrati izvrsi operacijo, ki natisne vsebino objekta na zaslon.Kar natisne na zaslon, oznaci z oglatim oklepajem [ ]. V nasem primeru objekt vsebuje le enovrednost in R nam pove, da je natisnil prvo (in edino) vrednost nasih rezultatov.

Med ze vpisanimi ukazi se lahko premikate s puscicama ↑ in ↓ na tipkovnici, kar je dobrodoslopredvsem pri daljsih ukazih. Zgodovina vseh ukazov je prikazana tudi v RStudiu desno zgorajv zavihku History. Vse stare ukaze lahko ponovno posljete v R konzolo z dvo-klikom.

V primeru, da je ukaz pomanjkljiv, vam R namesto rezultata prikaze ”+” znak, kar pomeni,da caka na dokoncanje ukaza.

> 2 −+

Ce ne veste natancno, kaj R hoce oziroma, kako bi nadaljevali, lahko vedno pritisnete Esc

in znova priklicete ”prompt”.Zgornji ukaz bi seveda nadaljevali:

> 2 −+ 1[ 1 ] 1

Ali recimo v primeru, ko R caka na zaklepaj:

> 15 / (2 + 4+ )[ 1 ] 2 . 5

R razume vse osnovne racunske operacije.

2.1.2 Komentarji in presledki

KomentarjiKomentiranje je predvsem priporocljivo pri daljsih kodah. Uporabljamo jih zato, da se kasnejelazje spomnimo, kaj ukaz izvrsi. Znak za komentiranje je #. R ignorira vse znake zapisane za# v doloceni vrstici.

Primer:

> l o g 1 0 ( 1 0 0 ) # izracunamo l o g a r i t e m s t e v i l a 100[ 1 ] 2

10

Page 12: Univerza v Novi Gorici R in RStudio - programsko okolje za

2.1. R KOT KALKULATOR 2. OSNOVNA UPORABA R

PresledkiV vecini primerov uporabljanje presledkov v ukazih za R nima bistvenega pomena.

Ukaz:

> 2+3+5[ 1 ] 10

je identicen spodnjemu zapisu:

> 2 + 3 + 5[ 1 ] 10

2.1.3 Osnovne funkcije

R ima vgrajenih veliko osnovnih funkcij v osnovnem paketu (base package). Vse funkcije soshranjene kot objekti, imajo svoje ime in sprejemajo razlicne argumente, ki jih zapisemo voklepaju: funkcija( ...). Ce nas zanima, katere argumente lahko sprejme dolocena funkcija,jo poiscemo z iskalnikom v pomoci (Help, v RStudiu v spodnjem desnem oknu).

Nekaj uporabnih funkcij v osnovnem paketu R je nastetih v tabeli 2.1).

Tabela 2.1: Osnovne funkcije.

Ime funkcije Opis

print(x) natisne objekt xlog(x) naravni logaritemlog10(x) logaritem z osnovo 10sqrt(x) kvadratni koren xabs(x) absolutna vrednostsin(x), cos(x), tan(x) sinus, kosinus, tangensasin(x), acos(x), atan(x) arkus sinus, arkus kosinus, arkus tangenstrunc(x) trunc(5.99) je 5round(x, digits=n) round(3.475, digits=2) je 3.48signif(x, digits=n) signif(3.475, digits=2) je 3.5exp(x) ex

mean(x, na.rm=TRUE) srednja vrednost objekta x,na.rm = TRUE odstrani vse manjkajoce vrednosti

sd(x) standardni odklon objekta xmedian(x) medianasum(x) vsota vseh vrednosti objekta xmin(x), max(x) minimum, maksimumseq(from, to, by) ustvari zaporedjecut(x, n) razdeli kontinuirno spremenljivko v faktor z n deli

Vec o osnovnih funkcijah, vgrajenih v osnovni paket R, si lahko preberete na spletni straniwww.statmethods.net/management/functions.html.

2.1.4 Logicne operacije

Zelo uporabne so tudi logicne operacije, ki pridejo v postev predvsem pri delu s podatki. Rpoda izid logicne operacije s TRUE ali FALSE (tabela 2.2).

Nekaj primerov:

11

Page 13: Univerza v Novi Gorici R in RStudio - programsko okolje za

2.2. POMOC (?) 2. OSNOVNA UPORABA R

Tabela 2.2: Logicne operacije.

znak opis

< manjse<= manjse ali enako> vecje>= vecje ali enako= = je enako!= ni enako& in| ali

> 2 == 2[ 1 ] TRUE

> 2 == 3[ 1 ] FALSE

> 2 != 3[ 1 ] TRUE

> 1 <= 2 & 1 <= 3[ 1 ] TRUE

> 1 == 1 | 1 == 2[ 1 ] TRUE

2.2 Pomoc (?)

R z vsemi razsiritvami vsebuje ogromno razlicnih funkcij, ki prepoznavajo razlicne argumentein moznosti. Opis posameznih funkcij je dostopen s Help funkcijo. Ce pred imenom funkcijezapisemo “?”, nam R izpise opis funkcije z vsemi argumenti in primeri uporabe.

Na primer:

> ? exp ( )

odpre okno z opisom funkcije exp().

V RStudiu lahko vpisemo ime funkcije ki nas zanima tudi v iskalnik v spodnjem desnemoknu (zavihek Help). Iskalnih isce funkcije v vseh nalozenih paketih.

Stran z opisom dolocene funkcije vkljucuje:

� Opis - namen funkcije.

� Uporaba - primer tipicne uporabe.

� Argumenti - seznam argumentov, ki jih funkcija sprejme in pomen vseh argumentov.

� Podrobnosti - podroben opis funkcije in argumentov.

� Vrednost - informacija o vrsti rezultata (ali je rezultat funkcije stevilo, vektor, matrica,. . . )

12

Page 14: Univerza v Novi Gorici R in RStudio - programsko okolje za

2.3. PAKETI IN KNJIZNICE 2. OSNOVNA UPORABA R

� Poglej tudi - seznam sorodnih funkcij.

� Reference - uporabna literatura v zvezi s funkcijo.

� Primeri - primeri ukazov.

Izkaze se, da imajo kvalitetni paketi tudi dobro dokumentirane funkcije. Vcasih pa se lahkozgodi, da so funkcije slabo dokumentirane.

help.start() funkcija odpre spletno stran z R navodili, kjer je objavljena vsa dokumentacijav zvezi z R in paketi.

2.3 Paketi in knjiznice

Ce zelimo uporabljati funkcije, ki niso vgrajene v osnovni R paket, so pa del nekega paketa(razsiritve), moramo paket najprej namestiti na svoj racunalnik. Ko je paket namescen naracunalnik, ga moramo se naloziti (obkljukati) ob vsakem zacetku nove R seje. S casom bostetudi ugotovili, da obstajajo nekatere resitve/funkcije v ralicnih paketih. Tudi za risanje grafovse moramo odlociti, kateri paket bomo uporabljali.

Za zacetek bomo na tecaju uporabljali le paket openair, ki ima vgrajene stevilne funkcijeza analizo in prikaz meteoroloskih podatkov in podatkov o kakovosti zraka.

2.3.1 Namestitev in nalaganje paketov

Pakete lahko nalozimo z ukazom v R konzoli:

> i n s t a l l . p a c k a g e s ( o p e n a i r )

ali pa uporabimo moznost RStudia:

1. V zavihku Packages v desnem spodnjem oknu izberemo Install (Slika 2.2).

Slika 2.2: Namestitev novega paketa v RStudiu.

2. V polje Packages vpisemo ”openair”.

R zacne nalagati paket openair in vse dodatne pakete potrebne za njegovo delovanje.Pri prvi uporabi je potrebno nastaviti tudi CRAN mirror (Comprehensive R Archive Net-

work), od koder nalagamo paket v naso knjiznico na racunalniku. Obicajno izberemo najblizjiCRAN mirror, saj to pomeni hitrejse delovanje.

Ko hocemo paket uporabiti, moramo pri vsaki novi R seji ponovno namestiti knjiznice. VRStudiu to naredimo tako, da paket enostavno obkljukamo, v R konzoli pa z ukazom

13

Page 15: Univerza v Novi Gorici R in RStudio - programsko okolje za

2.3. PAKETI IN KNJIZNICE 2. OSNOVNA UPORABA R

> l i b r a r y ( ” o p e n a i r ” )

2.3.2 Uporabni paketi

Obstajajo stevilni paketi - razsiritve z vgrajenimi funkcijami. Ker so funkcije v razlicnih paketihnapisane na razlicne nacine, se je tudi pakete potrebno nauciti uporabljat. Zato kot zacetnikiuporabljamo le dolocene pakete in nato z nadgradnjo znanja sirimo uporabo.

Nekateri izmed najbolj uporabljanih in zmogljivih paketov so zbrani v tabeli 2.3.

Tabela 2.3: Uporabni paketi.

ime paketa opis

XLConnect, xlsx Pomoc pri prenasanju podatkov iz Excel-a v R.

dplyr Funkcije, uporabne za hitro urejanje podatkov (izbor podatkovnega niza,povzetek, urejanje podatkov. . . )

ggplot2 Vizualizacija podatkov.

R Markdown Odlicen za pripravo porocil. V porocilo pisemo kodo, ki jo R Markdownzamenja z rezultati in zapise v pdf, Word ali HTML. Odlicno orodje zaavtomatizacijo porocil. Vgrajen v RStudio.

maps Zemljevidi v obliki poligonov za prikaz prostorskih podatkov.

ggmap Google zemljevidi za ozadje pri ggplot2 grafih.

zoo Funkcije uporabne za urejanje casovnih vrst.

2.3.3 Vzdrzevanje knjiznic

Ker pakete razvijalci veckrat posodabljajo, je potrebno obcasno posodabljanje paketov, karnaredimo z ukazom:

> u p d a t e . p a c k a g e s ( )

Ce uporabljamo RStudio, lahko to naredimo s klikom na Update v zavihku Packages vspodnjem desnem oknu.

Tudi R se obcasno posodablja, vendar zahteva namestitev nove verzije predhodno odstranitevstare verzije R. Pri tem postopku se obicajno zbrisejo tudi vse knjiznice s paketi, zaradi cesarjih moramo kasneje ponovno namestiti.

14

Page 16: Univerza v Novi Gorici R in RStudio - programsko okolje za

3

Osnovni elementi v R okolju -Objekti

Do sedaj smo si ogledali osnovni princip delovanja R in RStudia, seznanili smo se z osnovnouporabo R za enostavne racune, vemo tudi kako uporabljamo vgrajeno Help funkcijo. Sevedapa R nudi veliko vec kot le osnovno racunanje. To poglavje prikazuje osnovne elemente v Rokolju, ki jih imenujemo tudi objekti, in njihove oblike.

3.1 Objekti

R vedno operira z objekti, ki so lahko razlicnih tipov. Najbolj osnovni objekti so:

� Vektorji so zaporedja elementov enake oblike. Vektor je na primer zaporedje 25 znakov,kjer znak predstavlja naravno stevilo.

> seq (1 , 25 , by = 1)[ 1 ] 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

� Matrike so 2-dimenzijski pravokotni objekti. Vsi elementi matrike morajo biti enakeoblike.

> m a t r i x ( c (2 , 4 , 3 , 1 , 5 , 7) , nrow = 3 , n c o l = 2)[ , 1 ] [ , 2 ]

[ 1 , ] 2 1[ 2 , ] 4 5[ 3 , ] 3 7

15

Page 17: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.1. OBJEKTI 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

� Seznami so podobni vektorjem, vendar lahko vsebujejo elemente razlicnih oblik.

> seznam <− l i s t ( ”a” = c (6 , 5 , 4 ) , ”b” = c (9 , 8 , 7 ) , ”d” = c ( ”X” , ”Y” , ”W” ) )

> names ( seznam )[ 1 ] ”a” ”b” ”d”

> seznam$a[ 1 ] 6 5 4

$b[ 1 ] 9 8 7

$d[ 1 ] ”X” ”Y” ”W”

� Podatkovni okvirji (angl. data frames) so posebne vrste matrik ali oblika seznama, kijih vecinoma uporabljamo, ko delamo s podatki. So dvo-dimenzionalne oblike z vrsticami,ki ustrezajo opazovanjem in stolpci, ki ustrezajo spremenljivkam.Podatkovni okvir lahko ustvarimo iz seznama ali pa definiramo nov seznam.

> # u s t v a r i m o p o d a t k o v n i o k v i r i z seznama> p o d a t k i <− d a t a . f r a m e ( seznam )

> p o d a t k ia b d

1 6 9 X2 5 8 Y3 4 7 W

> # u s t v a r i m o nov p o d a t k o v n i o k v i r> p o d a t k i . 2 <− d a t a . f r a m e ( c (12 , 1 5 , 1 8 ) , c ( ” aa ” , ”bb” , ” cc ” ) , c ( TRUE, FALSE,

FALSE) )

> names ( p o d a t k i . 2 ) <− c ( ”A” , ”B” , ”C” )

> p o d a t k i . 2A B C

1 12 aa TRUE2 15 bb FALSE3 18 cc FALSE

� Faktorji so vektorji za razvrscanje kategoricnih podatkov in se obnasajo razlicno kotvektorji z numericnimi ali besedilnimi elementi.

� Funkcije so objekti, ki za vhodne podatke sprejemajo druge objekte in jih pretvorijo vnov objekt.

16

Page 18: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.2. OBLIKE OBJEKTOV 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

3.2 Oblike objektov

Nekateri objekti lahko vsebujejo elemente razlicnih oblik, nekateri objekti pa so omejeni na enosamo obliko elementov. R razlikuje med naslednjimi oblikami:

� integer – cela stevila (na primer 1, 2, 3, -72),

� numeric – realna stevila (na primer 5.89, -0.12),

� complex – kompleksna ali imaginarna stevila,

� character – elementi sestavljeni iz besedilnih nizov (na primer ”besedilo”, ”123”, ”c5d”),

� logical – podatki z logicnimi vrednostmi (na primer TRUE in FALSE).

3.3 Shranjevanje, klicanje in brisanje objektov

Vse izracune, ki jih opravi R, lahko shranimo z imenom objekta in ga kasneje ponovno priklice-mo. Ogledali smo si ze uporabo R kot kalkulatorja, kjer smo enostavne racune izpisali direktnona zaslon. Zdaj si bomo ogledali, kako te izracune shranimo kot objekte in jih kasneje uporabimoza drug izracun.

Vrednost pripisemo objektu z znakom ”< −” (assignment), kar si lahko predstavljamo kotpuscico.

S spodnjim ukazom shranimo rezultat izracuna v objekt z imenom ”rezultat”:

r e z u l t a t <− 2 + 3

Za objekte lahko uporabimo kakrsnokoli ime, ki se ne zacne s stevilko. Lahko pa v imenihobjektov uporabljamo ”.”, ” ”, ”-”. . . Pametno in zelo priporocljivo, ko delamo z veliko kolicinoobjektov, je, da so imena objektov informativna oziroma opisna. V mislih moramo imeti, dabo potrebno imena veckrat natipkati, zato je boljse, da se izogibamo uporabi velikih zacetnic inzelo dolgim imenom.

V primeru zgoraj vidimo, da R ne natisne vec rezultata na zaslon, ampak ga le shrani.Rezultat lahko priklicemo s funkcijo print().

> p r i n t ( r e z u l t a t )[ 1 ] 5

# a l i pa vpisemo l e ime o b j e k t ar e z u l t a t[ 1 ] 5

Ce hocemo izvedeti tip nekega objekta, lahko to preverimo s funkcijo is():

> i s ( r e z u l t a t )[ 1 ] ” numer ic ” ” v e c t o r ” ” a t o m i c V e c t o r ” ” i n d e x ” ”number”[ 6 ] ” numLike ” ” r e p l V a l u e ”

17

Page 19: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

V RStudiu je seznam vseh objektov prikazan v zgornjem desnem oknu pod zavihkom En-vironment (slika 3.1). Objekti so razdeljeni v kategorije:

� Data,

� Values,

� Functions.

Poskusimo nekaj operacij z imenovanimi objekti:

> r e z u l t a t * 3[ 1 ] 15

# shran imo v r e d n o s t kot ” r e z u l t a t . 2 ”> r e z u l t a t . 2 <− r e z u l t a t * 3 * l o g 1 0 ( r e z u l t a t )> r e z u l t a t . 2[ 1 ] 10 .48455

Poskusajmo imeti cimbolj cisto delovno okolje. Sproti torej brisemo objekte, ki jih ne potre-bujemo vec. Ampak POZOR! R nima ”undo” funkcije. Kar izbrisemo, je za vedno izgubljeno.Za brisanje objektov iz spomina uporabljamo funkcijo rm().

> rm ( r e z u l t a t . 2 )> r e z u l t a t . 2 # ko ponovno poskus imo p r i k l i c a t i o b j e k t r e z u l t a t . 2 , dobimo e r r o rE r r o r : o b j e c t ’ r e z u l t a t . 2 ’ not found

3.3.1 Operacije z vektorji

Do sedaj smo delali le z vektorjem dolzine 1. Za formiranje daljsih vektorjev uporabimofunkcijo c(). Tu ”c” pomeni ”concatenate” oziroma slovensko ”zdruzevanje” in nam pomaga,da zdruzimo skupaj elemente, ki jih locimo z vejicami.

> v e k t o r 1 <− c (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10)> v e k t o r 1[ 1 ] 1 2 3 4 5 6 7 8 9 10

Kaj pa, ce zelimo ustvariti vektor iz znakov (character)?

> v e k t o r 2 <− c ( ” Asta ” , ” Ime.1 ” , ” Ime.2 ” , ” Marusa ” , ” 123 ” , ” 456 ” )> v e k t o r 2[ 1 ] ” Asta ” ” Ime.1 ” ” Ime.2 ” ” Marusa ” ” 123 ” ” 456 ”

18

Page 20: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

V RStudiu imamo dober nadzor nad vsemi objekti znotraj projekta in njihovimi lastnostmi(slika 3.1).

Slika 3.1: RStudio: Seznam vseh objektov v projektu in njihovih lastnosti.

S funkcijo c() lahko zdruzujemo tudi vektorje:

> v e k t o r 3 <− c ( v e k t o r 1 , v e k t o r 2 )> v e k t o r 3

[ 1 ] ”1” ”2” ”3” ”4” ”5” ”6” ”7” ”8” ”9”[ 1 0 ] ”10” ” Asta ” ” Ime.1 ” ” Ime.2 ” ” Marusa ” ” 123 ” ” 456 ”

Vecina standardnih matematicnih operacij deluje tudi z vektorji:

> v e k t o r 1 + v e k t o r 1[ 1 ] 2 4 6 8 10 12 14 16 18 20

> v e k t o r 1 /10[ 1 ] 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1 . 0

> sum ( v e k t o r 1 )[ 1 ] 55

> l o g ( v e k t o r 1 )[ 1 ] 0 .0000000 0 .6931472 1 .0986123 1 .3862944 1 .6094379 1 .7917595 1 .9459101[ 8 ] 2 .0794415 2 .1972246 2 .3025851

S podpicjem (;) lahko zaporedoma zapisemo dva ukaza, ki ju R izvrsi enega za drugim:

> mean ( v e k t o r 1 ) ; sd ( v e k t o r 1 )[ 1 ] 5 . 5[ 1 ] 3 .02765

19

Page 21: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

Nekatere funkcije lahko tudi ugnezdimo v drugo funkcijo. Recimo funkcijo round(), kizaokrozi decimalna mesta, lahko uporabimo za zaokrozevanje rezultata po logaritmiranju.

> round ( l o g ( v e k t o r 1 ) )[ 1 ] 0 1 1 1 2 2 2 2 2 2> round ( l o g ( v e k t o r 1 ) , d i g i t s = 3)[ 1 ] 0 . 0 0 0 0 . 6 9 3 1 . 0 9 9 1 . 3 8 6 1 . 6 0 9 1 . 7 9 2 1 . 9 4 6 2 . 0 7 9 2 . 1 9 7 2 . 3 0 3

Nekaj funkcij, ki so uporabne za operacije z vektorji, je nastetih v tabeli 3.1.

Tabela 3.1: Uporabne funkcije za operacije z vektorji.

Funkcija Opis funkcije

sum() vsota elementov vektorjaprod() produkt elementov vektorjaabs() poda vektor z absolutnimi vrednostmimin() minimum elementov vektorjamax() maksimum elementov vektorjarange() poda minimum in maksimum vektorjamean() povprecna vrednostmedian() medianasd() standardni odkloncor() korelacijski koeficient med dvema vektorjemasort() sortira vektor (nastavimo argument decreasing = FALSE)sign() pove, ali gre za pozitivno ali negativno stevilolength() poda dolzino vektorjasummary() poda povzetek - osnovno statistikounique() poda vektor z vsemi enakimi vrednostmi prvotnega vektorja

Pa poskusimo uporabiti zgornje funkcije z vektorjem nakljucnih stevil:

# g e n e r i r a m o v e k t o r 20 n a k l j u c n i h c e l i h s t e v i l med 0 i n 30> v e k t o r 4 <− round ( r u n i f (20 , min = 0 , max = 30) )> v e k t o r 4[ 1 ] 16 19 0 2 8 15 23 24 6 2 16 24 13 8 28 2 0 7 8 9

# g e n e r i r a m o v e k t o r 20 n a k l j u c n i h c e l i h s t e v i l med 0 i n 100> v e k t o r 5 <− round ( r u n i f (20 , min = 0 , max = 100) )> v e k t o r 5[ 1 ] 6 51 98 51 62 68 43 21 88 39 47 12 10 17 53 79 99 65 76 69

> sum ( v e k t o r 4 )[ 1 ] 230

> prod ( v e k t o r 4 )[ 1 ] 0

> prod ( v e k t o r 5 )[ 1 ] 2 .707045e+32

> summary ( v e k t o r 4 )Min. 1 s t Qu. Median Mean 3 rd Qu. Max.0 . 0 0 5 . 0 0 8 . 5 0 11 . 5 0 16 . 7 5 28 . 0 0

20

Page 22: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

> r a ng e ( v e k t o r 4 )[ 1 ] 0 28

> median ( v e k t o r 4 )[ 1 ] 8 . 5

> sd ( v e k t o r 4 )[ 1 ] 8 .756952

> c o r ( v e k t o r 4 , v e k t o r 5 )[ 1 ] −0.5664555

> s o r t ( v e k t o r 4 )[ 1 ] 0 0 2 2 2 6 7 8 8 8 9 13 15 16 16 19 23 24 24 28

> s o r t ( v e k t o r 4 , d e c r e a s i n g = TRUE)[ 1 ] 28 24 24 23 19 16 16 15 13 9 8 8 8 7 6 2 2 2 0 0

> s i g n ( v e k t o r 4 )[ 1 ] 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1

> l e n g t h ( v e k t o r 4 )[ 1 ] 20

> u n i q u e ( v e k t o r 4 )[ 1 ] 16 19 0 2 8 15 23 24 6 13 28 7 9

Dvopicje (:) lahko uporabimo za ustvarjanje vektorjev celih stevil (od do):

> 5 : 5 0[ 1 ] 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[ 2 6 ] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Drugi nacin za hitro ustvarjanje vektorjev pa je funkcija seq(), ki ima vec razlicnih moznosti:

# v e k t o r c e l i h s t e v i l od 3 do 13> seq (3 , 13)[ 1 ] 3 4 5 6 7 8 9 10 11 12 13

# by = 0 . 5 p o v e , da j e razmik med e l e m e n t i 0 . 5> seq (3 , 13 , by = 0 . 5 )[ 1 ] 3 . 0 3 . 5 4 . 0 4 . 5 5 . 0 5 . 5 6 . 0 6 . 5 7 . 0 7 . 5 8 . 0 8 . 5 9 . 0 9 . 5 10 . 0[ 1 6 ] 10 . 5 11 . 0 11 . 5 12 . 0 12 . 5 13 . 0

# l e n g t h . o u t = 15 p o v e , da j e d o l z i n a v e k t o r j a 15 . R sam i z r a c u n a razmik mede l e m e n t i

> seq (3 , 13 , l e n g t h . o u t = 15)[ 1 ] 3 .000000 3 .714286 4 .428571 5 .142857 5 .857143 6 .571429 7 .285714[ 8 ] 8 .000000 8 .714286 9 .428571 10 .142857 10 .857143 11 .571429 12 .285714[ 1 5 ] 13 .000000

21

Page 23: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

Indeksiranje vektorjev

Vcasih se zgodi, da ne zelimo delati s celotnim vektorjem, ampak samo z delom vektorja. Naprimer: imamo podatke s temperaturo zraka in nas zanimajo samo obdobja, ko je temperaturapresegla doloceno vrednost.V takih primerih za indeksiranje vektorja uporabimo oglati oklepaj [ ].Poglejmo si nekaj primerov:

> v e k t o r 6 <− c ( ”Da” , ” ne ” , ” p o s t a n e ” , ” p r e v e c ” , ” d o l g o c a s n o . ” )> v e k t o r 6[ 1 ] ”Da” ” ne ” ” p o s t a n e ” ” p r e v e c ” ” d o l g o c a s n o . ”

> # z o g l a t i m o k l e p a j e m do loc imo t r e t j i e l em e n t v e k t o r j a> v e k t o r 6 [ 3 ][ 1 ] ” p o s t a n e ”

> # doloc imo l a h k o t u d i z a p o r e d j e e l e m e nt o v> v e k t o r 6 [ 4 : 5 ][ 1 ] ” p r e v e c ” ” d o l g o c a s n o . ”

> # s f u n k c i j o c ( ) l a h k o do loc imo k a t e r i k o l i e l e m en t v e k t o r j a> v e k t o r 6 [ c (1 , 3 , 5 ) ][ 1 ] ”Da” ” p o s t a n e ” ” d o l g o c a s n o . ”

> # doloc imo v s e e l e m e n t e r a z e n c e t r t e g a> v e k t o r 6 [−4 ][ 1 ] ”Da” ” ne ” ” p o s t a n e ” ” d o l g o c a s n o . ”

> # l a h k o pa t u d i zamenjamo d o l o c e n e e l e m e n t e> v e k t o r 6 [ 5 ] <− ” z a h t e v n o . ”> v e k t o r 6[ 1 ] ”Da” ” ne ” ” p o s t a n e ” ” p r e v e c ” ” z a h t e v n o . ”

Pri indeksiranju so zelo uporabne logicne operacije, zbrane v Tabeli 2.2:

> v e k t o r 7 <− round ( r u n i f (10 , 0 , 20) , 1)> v e k t o r 7[ 1 ] 19 . 9 11 . 9 17 . 0 12 . 4 12 . 7 8 . 7 14 . 4 3 . 7 13 . 5 15 . 9

> v e k t o r 7 [ v e k t o r 7 == 0 . 5 ]numer ic ( 0 )

> v e k t o r 7 [ v e k t o r 7 > 1 0 ][ 1 ] 19 . 9 11 . 9 17 . 0 12 . 4 12 . 7 14 . 4 13 . 5 15 . 9

> v e k t o r 7 [ v e k t o r 7 <= 1 0 ][ 1 ] 8 . 7 3 . 7

> v e k t o r 7 [ v e k t o r 7 != mean ( v e k t o r 1 ) & v e k t o r 7 > 1 5 ][ 1 ] 19 . 9 17 . 0 15 . 9

Se nekaj funkcij

Pri delu s pravimi podatki sta uporabni tudi funkciji subset() in is.na() ter moznost na.rm.Za razliko od navadnih tabel, kjer lahko delamo s praznimi celicami, so prazne vrednosti v

R zapisane kot NA, kar pomeni not available. Z NA vrednostmi pa nekatere funkcije ne znajooperirati, zato jih je vcasih potrebno odstraniti oziroma povedati funkciji, da NA ne uposteva.

Prisotnost NA najlazje preverimo s funkcijo summary().

22

Page 24: Univerza v Novi Gorici R in RStudio - programsko okolje za

3.3. SHRANJEVANJE 3. OSNOVNI ELEMENTI V R OKOLJU - OBJEKTI

> v e k t o r 8 <− c (5 , 2 , 8 , NA, 7 , 15 , 1 , NA, NA, 20)> v e k t o r 8[ 1 ] 5 2 8 NA 7 15 1 NA NA 20

> summary ( v e k t o r 8 )Min. 1 s t Qu. Median Mean 3 rd Qu. Max. NA’ s1 . 0 0 0 3 . 5 0 0 7 . 0 0 0 8 . 2 8 6 11 . 5 0 0 20 . 0 0 0 3

> max ( v e k t o r 8 )[ 1 ] NA

# to ne d e l u j e , k e r f u n k c i j a ne prepozna v r e d n o s t i NA

> max ( v e k t o r 8 , na.rm = TRUE)[ 1 ] 20

# d e l u j e , k e r smo f u n k c i j i p o v e d a l i , da ne u p o s t e v a NA

Funkcijo subset() lahko uporabimo skupaj s funkcijo is.na(), da izlocimo tiste dele po-datkov, ki vsebujejo NA vrednosti. Kot bomo videli kasneje, je to zelo uporabno pri pravihpodatkih, kjer se veckrat zgodi, da nam dolocene vrednosti manjkajo.

> v e k t o r 8[ 1 ] 5 2 8 NA 7 15 1 NA NA 20

> i s . n a ( v e k t o r 8 )[ 1 ] FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

> v e k t o r 8 . b r e z N A <− s u b s e t ( v e k t o r 8 , i s . n a ( v e k t o r 8 ) == FALSE)> v e k t o r 8 . b r e z N A[ 1 ] 5 2 8 7 15 1 20

Seveda pa funkcija subset() v kombinaciji z logicnimi operacijami omogoca stevilne drugemoznosti, ne le odstranjevanje NA vrednosti.

> v e k t o r 5[ 1 ] 8 28 3 12 83 43 16 80 69 88 8 49 31 61 86 68 63 86 66 65

# i z l o c i m o v r e d n o s t i , k i so > 20 a l i < 5> v e k t o r 5 . 1 <− s u b s e t ( v e k t o r 5 , v e k t o r 5 > 20 | v e k t o r 5 < 5)> v e k t o r 5 . 1[ 1 ] 28 3 83 43 80 69 88 49 31 61 86 68 63 86 66 65

23

Page 25: Univerza v Novi Gorici R in RStudio - programsko okolje za

4

Delo s podatki

Pogledali smo si ze, kako lahko ustvarimo vektorje v R okolju in kako z njimi manipuliramo.Zdaj nas seveda zanima, kako lahko realne podatke, ki so ponavadi v obliki tekstovnih datotek.txt ali .csv vnesemo v R.Vecina podatkovnih nizov je v R obicajno shranjena v obliki podatkovnih okvirjev. V tempoglavju si bomo ogledali, kako vnesti in shraniti nize podatkov in kako spreminjati njihovoobliko, da so primerni za nadaljnjo analizo.

4.1 Uvazanje podatkov v R

Najveckrat imamo podatke shranjene v obliki Excelovih tabel ali tekstovnih zapisov, ki so bodisirezultat nekih meritev, ali pa smo jih izvozili iz kaksnih drugih javnih virov. Tako lahko na primerprenesemo meteoroloske podatke, podatke o kakovosti zraka, podatke o kolicini in kakovostivoda,. . . s spletnih strani Agencije Republike Slovenije za Okolje (ARSO) www.arso.gov.si/.Prenesene podatke shranimo kot .csv datoteko, ki ima vrednosti locene z vejico, ali .txt da-toteko. Paziti moramo, da se znaki, ki locujejo vrednosti med sabo razlikujejo od decimalnegasimbola (pika, vejica). Torej, ce uporabljamo decimalno vejico, moramo za locevanje vrednostiuporabiti nek drug znak (presledek, tabulator, podpicje,. . . ).

Ko imamo shranjeno datoteko s podatki na svojem racunalniku, jo lahko prenesemo v R spomocjo ukazov ali z uporabo RStudia. Ker RStudio omogoca enostavnejsi in bolj pregledenvnos podatkov, se bomo osredotocili na ta nacin vnosa.

Na tem mestu velja opozoriti na dejstvo, da je natancna predpriprava podatkov zelo pomem-bna za nadaljnjo obdelavo, vendar obicajno tudi casovno zamudna.

Prvi podatki, ki jih bomo uvozili v R, so meteoroloski podatki za Novo Gorico – meteoroloskapostaja Bilje (Bilje-meteo.txt). Datoteke se nahajajo v mapi ”20161003” v sklopu ”DelavnicaR - Podatki” na spletni strani FZO. V zgornjem desnem oknu v zavihku Environment kliknemona Import Dataset → From Text File.... Izberemo datoteko, ki smo jo pred tem preneslina svoj racunalnik. Odpre se okno, ki ponuja razlicne moznosti (Slika 4.1):

� Name: izberemo ime za data.frame (bilje).

� Encoding: pustimo Automatic.

� Heading: izberemo Yes, ce podatki vsebujejo imena stolpcev.

� Row names: imena vrstic (v teh podatkih jih ni).

� Separator: dolocimo, kateri znak razmejuje stolpce. Vecinoma ga zazna avtomatsko(Tab, Whitespace, Comma, Semicolon).

24

Page 26: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

� Decimal: izberemo decimalni simbol.

� Quote: izberemo znak, ki omejuje besedilo.

� Comment: izberemo znak, ki doloca komentar.

� na.strings: tu moramo biti zelo pozorni, ker so razlicni nacini, kako so lahko zapisaneneobstojece vrednosti. Ponekod se pojavi ”999” ali ”-999”, znak /. . .

� Strings as factors: pustimo obkljukano. To pomeni, da morebitno besedilo pretvori vfaktor, kar lahko kasneje uporabimo za kategoriziranje podatkov.

Slika 4.1: Okno v RStudiu za pomoc pri uvazanju podatkov v R.

4.2 Urejanje podatkovnih okvirjev

Podatkovni okvir se po uvozu odpre v levem zgornjem oknu, ime objekta pa je na seznamu ob-jektov na desni strani. Tu lahko preverimo tudi lastnosti objekta: stevilo vrstic (obs.) in stevilospremenljivk (variables), s klikom na modro puscico pa se odpre seznam vseh spremenljivk. Po-datkovni okvir je v bistvu posebna vrsta seznama, vsako spremenljivko si lahko predstavljamokot vektor, ki je dolocenega tipa. Priporocljivo je, da najprej preverimo, kako je R prebralposamezno spremenljivko. To je pomembno pri nadaljnji obdelavi podatkov.

Na primer: Ce imamo spremenljivko v obliki decimalnih stevil, mora biti tip te spremenljivke ”Num” -

number. V primeru, da je znotraj te spremenljivke pred uvozom kaksna napaka – celica, ki ni stevilka – bo

R cel stolpec (spremenljivko) zaznal kot Factor ali Character. V tem primeru se bo ta spremenljivka obnasala

popolnoma drugace, kot bi pricakovali.

25

Page 27: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Vidimo, da so neobstojece vrednosti oznacene z NA, kar je pravilno. Problem pri uvozupodatkov se je pojavil pri:

� prepoznavanju simbolov v naslovni vrstici (imena stolpcev),

� prepoznavanju datuma.

Ta dva problema sta obicajna, zato si bomo v nadaljevanju najprej ogledali, kako spremin-jamo imena spremenljivk in kako delamo s casovnimi podatki.

4.2.1 Imena stolpcev

Funkcija, s katero dostopamo do imen stolpcev je names().

> names ( b i l j e )[ 1 ] ”Datum” ” p o v p . t l a k . . h P a . ” ” p o v p . . T . . . C . ”[ 4 ] ” p o v p . . r e l . . v l a . . . . . ” ” k o l i c i n a . p a d a v i n . . m m . ” ” h i t r o s t . v e t r a . . m . s . ”[ 7 ] ” s m e r . v e t r a . . . . ” ” g l o b a l n o . s e v . . . W . m 2 . ” ” d i f u z n o . s e v . . . W . m 2 . ”

Vidimo, da so se vsi posebni simboli izgubili pri prenosu. Namesto znakov imamo zdaj(.). Zelimo torej zamenjati imena stolpcev. Tu nam bo prislo prav znanje o indeksiranju izpoglavja 3.3.1. Ker bomo morali pri obdelavi podatkov veckrat izpisati ime stolpca, so boljprirocna kratka imena. Za olajsanje dela lahko enote tu izpustimo. Ce zelimo preveriti, kaksneso, odpremo originalno datoteko.

> names ( b i l j e )[ 1 ] ”Datum” ” p o v p . t l a k . . h P a . ” ” p o v p . . T . . . C . ”[ 4 ] ” p o v p . . r e l . . v l a . . . . . ” ” k o l i c i n a . p a d a v i n . . m m . ” ” h i t r o s t . v e t r a . . m . s . ”[ 7 ] ” s m e r . v e t r a . . . . ” ” g l o b a l n o . s e v . . . W . m 2 . ” ” d i f u z n o . s e v . . . W . m 2 . ”

# zamenjamo l e eno ime g l e d e na s t e v i l k o s t o l p c a> names ( b i l j e ) [ 2 ] <− ”p”> names ( b i l j e )[ 1 ] ”Datum” ”p” ” p o v p . . T . . . C . ”[ 4 ] ” p o v p . . r e l . . v l a . . . . . ” ” k o l i c i n a . p a d a v i n . . m m . ” ” h i t r o s t . v e t r a . . m . s . ”[ 7 ] ” s m e r . v e t r a . . . . ” ” g l o b a l n o . s e v . . . W . m 2 . ” ” d i f u z n o . s e v . . . W . m 2 . ”

# zamenjamo ve c imen h k r a t i> names ( b i l j e ) [ c (3 , 7 : 9 ) ] <− c ( ”T” , ”wd” , ” g l o b . r a d ” , ” d i f . r a d ” )> names ( b i l j e )[ 1 ] ”Datum” ”p” ”T”[ 4 ] ” p o v p . . r e l . . v l a . . . . . ” ” k o l i c i n a . p a d a v i n . . m m . ” ” h i t r o s t . v e t r a . . m . s . ”[ 7 ] ”wd” ” g l o b . r a d ” ” d i f . r a d ”

# a l i v sa imena h k r a t i> names ( b i l j e ) <− c ( ” d a t e ” , ”p” , ”T” , ” rh ” , ” r a i n ” , ”ws” , ”wd” , ” g l o b . r a d ” , ”

d i f . r a d ” )> names ( b i l j e )[ 1 ] ” d a t e ” ”p” ”T” ” rh ” ” r a i n ” ”ws” ”wd”[ 8 ] ” g l o b . r a d ” ” d i f . r a d ”

26

Page 28: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Dodatno lahko se preverimo vsebino podatkov s funkcijo summary().

> summary ( b i l j e )d a te p T rh

2016−07−10 0 0 : 0 0 : 1 Min. : 999 Min. : 9 . 9 0 Min. : 2 4 . 0 02016−07−10 0 0 : 1 0 : 1 1 s t Qu. : 1 0 0 7 1 s t Qu. : 1 9 . 4 0 1 s t Qu. : 4 4 . 0 02016−07−10 0 0 : 2 0 : 1 Median : 1 0 0 9 Median : 2 3 . 4 0 Median : 6 6 . 0 02016−07−10 0 0 : 3 0 : 1 Mean : 1 0 0 9 Mean : 2 3 . 8 1 Mean : 6 6 . 1 32016−07−10 0 0 : 4 0 : 1 3 rd Qu. : 1 0 1 1 3 rd Qu. : 2 8 . 5 7 3 rd Qu. : 8 9 . 0 02016−07−10 0 0 : 5 0 : 1 Max. : 1 0 1 7 Max. : 3 3 . 6 0 Max. : 9 9 . 0 0( Other ) : 4 4 5 6 NA’ s : 2 9 7 4 NA’ s : 2 9 7 2

r a i n ws wd g l o b . r a dMin. : 0 . 0 0 0 0 Min. : 0 . 3 0 0 Min. : 0 Min. : 0 . 01 s t Qu. : 0 . 0 0 0 0 1 s t Qu. : 1 . 2 0 0 1 s t Qu. : 90 1 s t Qu. : 0 . 0Median : 0 . 0 0 0 0 Median : 1 . 7 0 0 Median : 1 0 5 Median : 111 . 5Mean : 0 . 0 3 6 3 Mean : 2 . 1 3 3 Mean : 1 4 4 Mean : 267 . 33 rd Qu. : 0 . 0 0 0 0 3 rd Qu. : 2 . 9 0 0 3 rd Qu. : 2 1 3 3 rd Qu. : 514 . 8Max. : 2 2 . 6 0 0 0 Max. : 7 . 5 0 0 Max. : 3 5 8 Max. : 1 0 4 0 . 0NA’ s : 2 9 7 4 NA’ s : 2 9 7 4 NA’ s : 2 9 7 4 NA’ s : 2 9 7 4

d i f . r a d T.KMin. : 0 . 0 0 Min. : 2 8 3 . 11 s t Qu. : 0 . 0 0 1 s t Qu. : 2 9 2 . 6Median : 57 . 5 0 Median : 2 9 6 . 6Mean : 95 . 2 4 Mean : 2 9 7 . 03 rd Qu. : 1 4 3 . 0 0 3 rd Qu. : 3 0 1 . 7Max. : 5 5 5 . 0 0 Max. : 3 0 6 . 8NA’ s : 2 9 7 4 NA’ s : 2 9 7 2

4.2.2 Preurejanje vrstnega reda stolpcev

Vcasih zelimo za lazji pregled ali iz kaksnega drugega razloga stolpce prerazporediti.

# v r s t n i r e d s t o l p c e v g l e d e na zaporedno s t e v i l k o> b i l j e . 1 <− b i l j e [ c (1 , 6 : 7 , 2 : 4 , 8 , 9) ]> names ( b i l j e . 1 )[ 1 ] ” d a t e ” ”ws” ”wd” ”p” ”T” ” rh ” ” g l o b . r a d ”[ 8 ] ” d i f . r a d ”

# v r s t n i r e d s t o l p c e v g l e d e na ime s t o l p c a> b i l j e . T <− b i l j e . 1 [ c ( ” d at e ” , ”T” ) ]> names ( b i l j e . T )[ 1 ] ” d a t e ” ”T”

4.2.3 Ekstrakcija dolocenega dela podatkov

Osnovni princip indeksiranja z uporabo [ ] velja tudi za podatkovne okvirje. Ker pa lahkopodatkovni okvir razumemo kot neko vrsto seznama, lahko med stolpci izbiramo tudi z znakom$.

Stolpec z relativno vlago ”rh” lahko izberemo na dva nacina.

> b i l j e [ , 4 ][ 1 ] 91 91 92 93 93 94 92 92 93 93 94 94 94 93 93 94 95 95 95 94 95 96 96 97 96[ 2 6 ] 96 96 96 96 96 96 96 94 92 91 89 87 85 84 82 76 74 73 67 66 63 63 61 61 58[ 5 1 ] 57 54 54 52 48 45 43 44 42 40 40 40 39 38 37 38 37 36 37 36 37 37 37 37 38[ 7 6 ] 39 41 40 41 42 40 41 41 41 41 40 39 39 38 38 39 39 39 39 39 40 39 40 40 40. . .

27

Page 29: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Za razliko od vektorjev, kjer smo pri indeksiranju zapisali v [ ] le eno vrednost, moramo pripodatkovnih okvirjih podati dve vrednosti v obliki [vrstice, stolpci]. Ce indeksa za vrsticone dolocimo, R izbere vse vrstice.

Enak rezultat dobimo z uporabo znaka $:

> b i l j e $ rh[ 1 ] 91 91 92 93 93 94 92 92 93 93 94 94 94 93 93 94 95 95 95 94 95 96 96 97 96[ 2 6 ] 96 96 96 96 96 96 96 94 92 91 89 87 85 84 82 76 74 73 67 66 63 63 61 61 58[ 5 1 ] 57 54 54 52 48 45 43 44 42 40 40 40 39 38 37 38 37 36 37 36 37 37 37 37 38[ 7 6 ] 39 41 40 41 42 40 41 41 41 41 40 39 39 38 38 39 39 39 39 39 40 39 40 40 40. . .

Kombiniramo lahko tudi znak $ in [ ]. Z $ izlocimo vektor in tega indeksiramo z uporabo [ ].

> b i l j e $ rh [ 1 0 0 : 1 0 5 ][ 1 ] 40 40 40 41 42 43

Na zgoraj opisane nacine lahko izlocimo tocno dolocen del podatkov in jih zamenjamo zdrugimi podatki, uporabimo pri risanju grafov in podobno.

# zamenjamo 2 . i n 3 . NA v r e d n o s t podatkov za T (3 . s t o l p e c ) v p o d a t k i h ” b i l j e ”> b i l j e [ 2 : 3 , 3 ] <− c (21 , 20 . 9 )> head ( b i l j e )

d a te p T rh r a i n ws wd g l o b . r a d d i f . r a d1 2016−07−10 0 0 : 0 0 1010 21 . 1 91 0 0 . 6 101 0 02 2016−07−10 0 0 : 1 0 NA 21 . 0 91 NA NA NA NA NA3 2016−07−10 0 0 : 2 0 NA 20 . 9 92 NA NA NA NA NA4 2016−07−10 0 0 : 3 0 1010 20 . 7 93 0 0 . 7 149 0 05 2016−07−10 0 0 : 4 0 NA NA 93 NA NA NA NA NA6 2016−07−10 0 0 : 5 0 NA NA 94 NA NA NA NA NA

Ker znamo izlociti vektorje iz podatkovnega okvirja, lahko z njimi tudi operiramo. Recimo,da zelimo pretvoriti temperaturo v enoto K in jo shraniti v nov stolpec z imenom T.K:

> b i l j e $T.K <− b i l j e $T + 273 . 1 5> head ( b i l j e )

d a te p T rh r a i n ws wd g l o b . r a d d i f . r a d T.K1 2016−07−10 0 0 : 0 0 1010 21 . 1 91 0 0 . 6 101 0 0 294 . 2 52 2016−07−10 0 0 : 1 0 NA 21 . 0 91 NA NA NA NA NA 294 . 1 53 2016−07−10 0 0 : 2 0 NA 20 . 9 92 NA NA NA NA NA 294 . 0 54 2016−07−10 0 0 : 3 0 1010 20 . 7 93 0 0 . 7 149 0 0 293 . 8 55 2016−07−10 0 0 : 4 0 NA NA 93 NA NA NA NA NA NA6 2016−07−10 0 0 : 5 0 NA NA 94 NA NA NA NA NA NA

Eden izmed nacinov, kako odstranimo posamezen stolpec iz podatkov:

> b i l j e $T.K <− NULL> names ( b i l j e )[ 1 ] ” d a t e ” ”p” ”T” ” rh ” ” r a i n ” ”ws” ”wd”[ 8 ] ” g l o b . r a d ” ” d i f . r a d ”

28

Page 30: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Funkcija subset()

Funkcijo subset() smo srecali ze pri vektorjih. Tokrat jo bomo uporabili se za izlocanje delapodatkov.

Najprej izlocimo NA vrednosti iz podatkov, podobno kot pri vektorjih s funkcijo is.na().

> b i l j e . b r e z N A <− s u b s e t ( b i l j e , i s . n a ( b i l j e $p ) == FALSE)> summary ( b i l j e . b r e z N A )

d a te p T rh2016−07−10 0 0 : 0 0 : 1 Min. : 999 Min. : 9 . 9 0 Min. : 2 5 . 0 02016−07−10 0 0 : 3 0 : 1 1 s t Qu. : 1 0 0 7 1 s t Qu. : 1 9 . 4 0 1 s t Qu. : 4 4 . 0 02016−07−10 0 1 : 0 0 : 1 Median : 1 0 0 9 Median : 2 3 . 4 0 Median : 6 6 . 0 02016−07−10 0 1 : 3 0 : 1 Mean : 1 0 0 9 Mean : 2 3 . 8 1 Mean : 6 6 . 1 42016−07−10 0 2 : 0 0 : 1 3 rd Qu. : 1 0 1 1 3 rd Qu. : 2 8 . 6 0 3 rd Qu. : 8 9 . 0 02016−07−10 0 2 : 3 0 : 1 Max. : 1 0 1 7 Max. : 3 3 . 6 0 Max. : 9 9 . 0 0( Other ) : 1 4 8 2

r a i n ws wd g l o b . r a dMin. : 0 .00000 Min. : 0 . 3 0 0 Min. : 0 Min. : 0 . 01 s t Qu. : 0 .00000 1 s t Qu. : 1 . 2 0 0 1 s t Qu. : 90 1 s t Qu. : 0 . 0Median : 0 .00000 Median : 1 . 7 0 0 Median : 1 0 5 Median : 111 . 5Mean : 0 .03629 Mean : 2 . 1 3 3 Mean : 1 4 4 Mean : 267 . 33 rd Qu. : 0 .00000 3 rd Qu. : 2 . 9 0 0 3 rd Qu. : 2 1 3 3 rd Qu. : 514 . 8Max. : 2 2 .60000 Max. : 7 . 5 0 0 Max. : 3 5 8 Max. : 1 0 4 0 . 0

d i f . r a dMin. : 0 . 0 01 s t Qu. : 0 . 0 0Median : 57 . 5 0Mean : 95 . 2 43 rd Qu. : 1 4 3 . 0 0Max. : 5 5 5 . 0 0

Zdaj pa iz podatkov bilje.brezNA izlocimo podatke, ko ni bilo dezja in je bila relativnavlaznost manjsa od 50 %. Podatke shranimo v nov podatkovni okvir z imenom bilje.2.

> b i l j e . 2 <− s u b s e t ( b i l j e . b r e z N A , b i l j e . b r e z N A $ r a i n == 0 & b i l j e . b r e z N A $ rh < 50)> summary ( b i l j e . 2 $ r a i n )

Min. 1 s t Qu. Median Mean 3 rd Qu. Max.0 0 0 0 0 0

4.2.4 Prepoznavanje in pretvarjanje casovnega zapisa

Pri pregledu uvozenih meteoroloskih podatkov za Bilje (podatkovni okvir bilje) lahko opazimo,da imamo pri datumu zapisan format ”Factor”. To pomeni, da je R datum prebral kot besedilo,torej ni prepoznal casovnega formata. Ker sta datum in ura lahko zapisana na razlicne nacine,moramo R povedati, kako naj prebere zapis.

Drugi problem, ki se pojavlja pri casovnih vrstah, so casovni pasovi (time zones) in spre-minjanje zimski/poletni cas (Daylight Savings Time - DST). Predvsem zaradi DST pogostonaletimo na probleme. Predstavljate si kontinuirane meritve, kjer instrument belezi nek para-meter vsako uro. Ko preklopimo na poletni cas, se bo tako zgodilo, da bo ena meritev manjkala,ob preklopu na zimski cas pa bomo imeli dve meritvi ob isti uri. Zato se v praksi ponavadicas ohrani v imenovanem zimskem casu (CET). Slovenija lezi v casovnem pasu CET - Cen-tral European Time, ki je eno uro pred GMT (Greenwich Mean Time) oziroma UTC (Coordi-nated Universal Time). Dobro si je tudi zapomniti, da so vsi podatki, ki jih dobimo s spletnestrani ARSO v CET (UTC + 1) casu. Vec o casovnih pasovih je zbrano na spletni stranien.wikipedia.org/wiki/List of zoneinfo time zones. Pregled casovnih pasov je zbran v Tabeli4.1.

29

Page 31: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Tabela 4.1: Casovni pas in pretvorba v GMT.

Oznaka Opis oznake Ime TZ zamik od UTC pretvorba v R

CET Central Eur. T. Europe/Ljubljana +01:00 tz = ”Etc/GMT-1”CEST Central Eur. Summer T. +02:00 tz = ”Etc/GMT-2”

Ce R pri pretvarjanju datuma ne povemo, v katerem casovnem pasu so podatki, avtomatskopostavi cas v casovni pas nasega racunalnika. Ker pa je ta ponavadi nastavljen na lokalni cas,torej uposteva tudi DST, lahko pride do problemov pri daljsih casovnih vrstah. Cas nasegaracunalnika lahko hitro preverimo:

> S y s . t i m e ( )[ 1 ] ” 2016−08−13 0 8 : 1 7 : 0 9 CEST”

> S y s . t i m e z o n e ( )[ 1 ] ” Europe / Prague ” # L j u b l j a n a j e v i s t e m c asovnem pasu kot B eog ra d , B r a t i s l a v a ,

# Budimpe s t a , Praga

Da se izognemo napakam, ko kombiniramo podatke s casom v razlicnih casovnih pasovih,je najboljse, ce cas pretvorimo v cas brez DST (brez zamika v poletni cas). Najprej bomo Rpomagali, da casovni zapis pravilno prebere, potem pa ga bomo spremenili v drug casovni pas.

> b i l j e $ d a te <− as .POSIXct ( s t r p t i m e ( b i l j e $ d a t e , fo rmat = ”%Y−%m−%d %H:%M” ) , t z = ”Etc /GMT−1” )

> i s ( b i l j e $ d a t e )[ 1 ] ”POSIXct” ”POSIXt” ” o l d C l a s s ”

Funkcijo as.POSIXct() uporabljamo za pretvarjanje v format casa POSIXct. Hkrati upora-bimo se funkcijo strptime(), ki nam pomaga pri pretvarjanju iz besedila v datum. Funkcijapotrebuje se informacijo o formatu in casovnem pasu.

Za obratni proces (pretvarjanje iz datuma v besedilo) lahko uporabimo funkcijo strftime().Ti dve funkciji nudita stevilne oblike zapisov. Omogocajo tudi, da dolocimo casovni pas,v katerega hocemo spremeniti datum. Mozne okrajsave za pretvarjanje besedila v datum inobratno so zbrane v Tabeli 4.1.

Ko imamo datum v pravem formatu lahko poskusimo s pretvarjanjem. Dodamo lahko novstolpec, v katerem bo zapisan dan v tednu, izlocimo lahko le cas brez datuma ali samo datumbrez casa ali izpisemo casovni pas. Pomagamo si s Tabelo 4.2.

30

Page 32: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.2. UREJANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

Tabela 4.2: Seznam okrajsav za pretvarjanje datumov - strftime(), strptime(). Najpogostejeuporabljane oblike so odebeljene.

Okrajsava Opis

%a okrajsano ime dneva v tednu (glede na jezik operacijskega sistema)%A celo ime dneva v tednu (glede na jezik operacijskega sistema)%b okrajsano ime meseca (glede na jezik operacijskega sistema)%B celo ime meseca (glede na jezik operacijskega sistema)%c datum in cas: pri izvozu odvisno od sistema,

pri uvozu pa v obliki %a %b %e %H:%M:%S %Y%C stoletje (00-99)%d dan meseca (01-31)%D datum v obliki %m/%d/%y%e dan meseca (1-31)%F ekvivalent %Y-%m-%d%H ura (00-23)%I ura (01-12)%j dan leta (001-366)%m mesec (01-12)%M minuta (00-59)%p AM/PM indikator, uporaben skupaj z %I (ne z %H)%R ekvivalent %H:%M%S sekunda (00-61)%T ekvivalent %H:%M:%S%u dan v tednu kot stevilo (0-6, nedelja je 0)%y leto brez stoletja (00-99)%Y leto s stoletjem

# i z p i s emo dan v tednu (%A)> b i l j e . b r e z N A $dan <− s t r f t i m e ( b i l j e . b r e z N A $ d a t e , fo rmat = ”%A” ,

t z = ” Etc /GMT−1” )

# i z p i s emo datum> b i l j e . b r e z N A $datum <− s t r f t i m e ( b i l j e . b r e z N A $ d a t e , fo rmat = ”%d/%m/%y ” ,

t z = ” Etc /GMT−1” )

# i z p i s emo c as> b i l j e . b r e z N A $ c a s <− s t r f t i m e ( b i l j e . b r e z N A $ d a t e , fo rmat = ”%H:%M” ,

t z = ” Etc /GMT−1” )

# i z p i s emo c as v c asovnem pasu Europe / L j u b l j a n a i n dodamo ime c asovnega pasu zukazom u s e t z = TRUE

> b i l j e . b r e z N A $ c a s . p a s <− s t r f t i m e ( b i l j e . b r e z N A $ d a t e , fo rmat = ”%H:%M” ,t z = ” Europe / L j u b l j a n a ” , u s e t z = TRUE)

> head ( b i l j e . b r e z N A )d a t e p T rh r a i n ws wd g l o b . r a d d i f . r a d dan

1 2016−07−10 0 0 : 0 0 : 0 0 1010 21 . 1 91 0 0 . 6 101 0 0 Sunday4 2016−07−10 0 0 : 3 0 : 0 0 1010 20 . 7 93 0 0 . 7 149 0 0 Sunday7 2016−07−10 0 1 : 0 0 : 0 0 1010 20 . 5 92 0 0 . 7 79 0 0 Sunday10 2016−07−10 0 1 : 3 0 : 0 0 1010 20 . 4 93 0 0 . 7 99 0 0 Sunday13 2016−07−10 0 2 : 0 0 : 0 0 1010 20 . 0 94 0 1 . 1 105 0 0 Sunday16 2016−07−10 0 2 : 3 0 : 0 0 1010 19 . 8 94 0 1 . 0 84 0 0 Sunday

31

Page 33: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.3. ZDRUZEVANJE PODATKOVNIH OKVIRJEV 4. DELO S PODATKI

datum c a s c a s . p a s1 10/07/16 0 0 : 0 0 0 1 : 0 0 CEST4 10/07/16 0 0 : 3 0 0 1 : 3 0 CEST7 10/07/16 0 1 : 0 0 0 2 : 0 0 CEST10 10/07/16 0 1 : 3 0 0 2 : 3 0 CEST13 10/07/16 0 2 : 0 0 0 3 : 0 0 CEST16 10/07/16 0 2 : 3 0 0 3 : 3 0 CEST

Vcasih so casovni podatki zapisani v dveh locenih stolpcih z locenim datumom in uro. Vtem primeru si pomagamo z ukazom paste().

b i l j e . b r e z N A $ date1 <− as .POSIXct ( p a s t e ( b i l j e . b r e z N A $datum, b i l j e . b r e z N A $ c a s ) ,fo rmat = ”%d/%m/%y %H:%M” , t z = ” Etc /GMT−1” )

4.3 Zdruzevanje podatkovnih okvirjev

Sedaj imamo v nasem delovnem okolju meteoroloske podatke za Novo Gorico, ki imajo urejendatum. S spletne strani ARSO smo prenesli tudi podatke o kakovosti zraka v Novi Gorici. Zelelibi primerjati kvaliteto zraka glede na vremenske podatke. Za ta namen moramo seveda zdruzitiobe tabeli tako, da imamo en stolpec z datumom, ki mu sledijo vsi ostali parametri. Takozdruzevanje podatkov je lahko v Excelu precej zamudno, sploh ce frekvenca meritev ni pri obehpodatkovnih nizih enaka. V R lahko to enostavno resimo s funkcijo merge().

Na podoben nacin kot v poglavju 4.1 uvozimo podatke ”GO-kakovost zraka.csv” v objekt zimenom ”go.air”. Nato podobno kot v prejsnjem primeru definiramo datum in preimenujemostolpce. Pomembno je, da ima stolpec, po katerem zdruzujemo dva podatkovna okvirja, enakoime.

# uredimo podatke g o . a i r i n preberemo datum> names ( g o . a i r ) <− c ( ” da t e ” , ”PM10” , ”NO2” , ”O3” )> g o . a i r $ d a te <− as.POSIXct ( s t r p t i m e ( g o . a i r $ d a t e , fo rmat = ”%d/%m/%Y %H:%M” ) ,

t z = ” Etc /GMT−1” )

# zdru z imo podatke ” b i l j e . b r e z N A ” i n ” g o . a i r ” v p o d a t k o v n i o k v i r ”go”> go <− merge ( b i l j e . b r e z N A , g o . a i r , by = ” d a te ” , a l l = TRUE ,

s u f f i x e s = c ( ” .meteo ” , ” . a i r ” ) )

> head ( go )d a te p T rh r a i n ws wd g l o b . r a d d i f . r a d dan

1 2016−07−10 0 0 : 0 0 : 0 0 1010 21 . 1 91 0 0 . 6 101 0 0 Sunday2 2016−07−10 0 0 : 3 0 : 0 0 1010 20 . 7 93 0 0 . 7 149 0 0 Sunday3 2016−07−10 0 1 : 0 0 : 0 0 1010 20 . 5 92 0 0 . 7 79 0 0 Sunday4 2016−07−10 0 1 : 3 0 : 0 0 1010 20 . 4 93 0 0 . 7 99 0 0 Sunday5 2016−07−10 0 2 : 0 0 : 0 0 1010 20 . 0 94 0 1 . 1 105 0 0 Sunday6 2016−07−10 0 2 : 3 0 : 0 0 1010 19 . 8 94 0 1 . 0 84 0 0 Sunday

datum c a s c a s . p a s PM10 NO2 O31 10/07/16 0 0 : 0 0 0 1 : 0 0 CEST <NA> <NA> NA2 10/07/16 0 0 : 3 0 0 1 : 3 0 CEST <NA> <NA> NA3 10/07/16 0 1 : 0 0 0 2 : 0 0 CEST <NA> <NA> NA4 10/07/16 0 1 : 3 0 0 2 : 3 0 CEST <NA> <NA> NA5 10/07/16 0 2 : 0 0 0 3 : 0 0 CEST <NA> <NA> NA6 10/07/16 0 2 : 3 0 0 3 : 3 0 CEST <NA> <NA> NA

Vcasih R ne prepozna tipa podatkov tako, kot bi si zeleli. V primeru go.air sta stolpcaPM10 in NO2 v obliki ”faktor”, zato ju je potrebno spremeniti v numericno obliko s funkcijoas.numeric():

> go$PM10 <− a s . n u m e r i c ( go$PM10)

32

Page 34: Univerza v Novi Gorici R in RStudio - programsko okolje za

4.4. IZVAZANJE PODATKOV 4. DELO S PODATKI

> go$NO2 <− a s . n u m e r i c ( go$NO2)

Pri zdruzevanju z argumentom ”by” dolocimo stolpec, po katerem zdruzujemo podatke.Pri nas je to ”date” - stolpec z datumom. Z ”all = TRUE” povemo, da zapise vse vrstice,tudi tiste, ki so samo v enem ali drugem podatkovnem okvirju. V primeru, da zdruzujemopodatkovne okvirje, ki vsebujejo stolpce z identicnimi imeni, dodamo argument ”suffixes”, vkaterem dolocimo pripono, ki jo R doda stolpcem. V nasem primeru pripone ne doda, ker nistolpcev z enakimi imeni. Ta moznost je predvsem uporabna, ce zdruzujemo na primer enakevrste podatkov z dveh razlicnih lokacij. Potem lahko s priponami dopisemo ime lokacije.

4.4 Izvazanje podatkov

Vse podatke, objekte, ki se nahajajo v nasem delovnem okolju v trenutnem projektu, lahkoshranimo v obliki .RData s klikom na gumb Save v zavihku Environment.

Posamezen podatkovni okvir lahko izvozimo v razlicnih oblikah z dvema osnovnima funkci-jama: write.table() in write.csv(). Pri tem lahko dolocimo simbol za locevanje med stolpci,decimalni simbol, zapis NA vrednosti,. . .

V nasem primeru bomo izvozili podatke iz objekta ”go” v csv formatu, torej za locilo upora-bimo vejico, za decimalni simbol pa piko. Datoteko poimenujemo go.csv. Ce ne napisemo poti,kam naj datoteko shrani, bo shranjena v nas delovno mapo.

> w r i t e . c s v ( g o , f i l e = ” g o . c s v ” , row.names = FALSE)

4.5 Shranjevanje slik

Za izvazanje slik si bomo ogledali moznost z uporabo RStudia, ceprav to lahko storimo tudi zukazom v R konzoli.

Narisimo zelo enostaven primer x - y diagrama:

> p l o t ( go$ r h , go$T)

Z uporabo moznosti Export v zavihku Plots v desnem spodnjem oknu lahko izbiramo medrazlicnimi formati shranjevanja:

� Save as Image - shrani rastrsko sliko (PNG, JPEG, TIFF. . . ),

� Save as PDF,

� Copy to Clipboard - sliko samo skopiramo v pomnilnik, ce jo zelimo nalepiti v urejevalnikbesedila ali podobno.

Preden sliko shranimo, lahko spreminjamo njeno velikost in sproti preverimo obliko. S sprem-injanjem dimenzij slike se namrec spreminja tudi velikost pisave in znakov, zato moramo poiskatipravo dimenzijo, ko je velikost pisave se dovolj velika za uporabo.

33

Page 35: Univerza v Novi Gorici R in RStudio - programsko okolje za

5

Paket openair

openair [1] je paket, ki vsebuje stevilne vgrajene funkcije za analizo in prikaz podatkov okakovosti zraka. Ker je vecina funkcij prilagojena za delo s casovnimi vrstami, je openair

uporaben tudi za graficni prikaz drugih casovnih vrst.V tem poglavju si bomo pogledali nekaj osnovnih funkcij. Vse funkcije so podrobno opisane

in predstavljene na primerih v navodilih (The openair manual).

5.1 Uvod v openair

Paket openair smo namestili ze na zacetku tecaja, v poglavju 2.3.1. Ob vsakem zacetku noveseje moramo paket ponovno naloziti, tako da ga v RStudiu obkljukamo.

Najveckrat uporabljane funkcije za prikaz podatkov in njihovi opisi so zbrane v Tabeli 5.1,najbolj uporabne dodatne funkcije za obdelavo podatkov pa so predstavljene v tabeli 5.2. Polegteh vkljucuje openair se ogromno drugih funkcij, ki si jih lahko ogledate v navodilih in na Helpstraneh.

Ko imamo podatke urejene in uvozene v R, je uporaba funkcij enostavna. Vecino funkcijlahko uporabljamo na nacin:

> funct ionName ( p o d a t k i , moz n o s t i , . . . )

Ker je paket namenjen obdelavi meteoroloskih podatkov in podatkov kakovosti zraka, imanekatera imena spremenljivk ze vnaprej definirana, zato je najbolj priporocljivo, da se drzimostandardnega poimenovanja:

� datum → date,

� hitrost vetra (wind speed) v m/s → ws,

� smer vetra (wind direction) v stopinjah → wd.

Moznosti, ki jih lahko spreminjamo pri vsaki funkciji, so opisane v opisu funkcije v Helpstraneh. Poleg nastavitev, pomembnih za delovanje funkcije, pa obstaja se kar nekaj osnovnihmoznosti za risanje grafov, ki so predstavljene v Tabeli 5.3.

34

Page 36: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.1. UVOD V OPENAIR 5. PAKET OPENAIR

Tabela 5.1: Opis nekaterih funkcij paketa openair.

Funkcija Opis funkcije

linearRelation odkrivanje linearne korelacije med dvema spremenljivkama v casupolarPlot predstavljanje koncentracij neke spremenljivke glede na vetrovno poljescatterPlot obicajen tockovni x-y grafsummaryPlot povzetek podatkov v graficni oblikitimePlot prikaz poteka neke spremenljivke v casutimeVariation potek dnevnih in mesecnih vrednosti neke spremenljivkewindRose prikaz smeri in hitrosti vetra v polarnem koordinatnem sistemu

Tabela 5.2: Opis nekaterih dodatnih funkcij paketa openair.

Funkcija Opis funkcije

selectByDate fleksibilno dolocanje casovnih obmocijsplitByDate razdelitev podatkovnega okvirja glede na datumtimeAverage zdruzevanje v razlicnih casovnih intervalihrollingMean racunanje tekocega povprecja

Tabela 5.3: Osnovne nastavitve grafov, ki v opisih funkcij obicajno niso vedno zapisane.

Nastavitev Opis

xlab naslov x-osiylab naslov y-osimain naslov grafapch simbol, uporabljen za risanje tockcex velikost simbolovlty tip linijlwd debelina linijlayout izgled grafa - razdelitev grafov na listufontsize velikost znakov pisave

Vse funkcije imajo ze dolocene privzete nastavitve. To pomeni da v kolikor ne dolocimodruge nastavitve, velja privzeto. Primer funkcije timePlot.

t i m e P l o t ( mydata, p o l l u t a n t = ” nox ” , group = FALSE , s t a c k = FALSE ,n o r m a l i s e = NULL , a v g . t i m e = ” d e f a u l t ” , d a t a . t h r e s h = 0 ,s t a t i s t i c = ”mean” , p e r c e n t i l e = NA, d a t e . p a d = FALSE ,t y p e = ” d e f a u l t ” , c o l s = ” brewer1 ” , p l o t . t y p e = ” l ” , key = TRUE ,l o g = FALSE , w i n d f l o w = NULL , smooth = FALSE , c i = TRUE ,y . r e l a t i o n = ”same” , r e f . x = NULL , r e f . y = NULL , k e y . c o l u m n s = 1 ,name.po l = p o l l u t a n t , d a t e . b r e a k s = 7 , d a t e . f o r m a t = NULL ,a u t o . t e x t = TRUE , . . . )

35

Page 37: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.1. UVOD V OPENAIR 5. PAKET OPENAIR

5.1.1 Nastavitev type

Ena od nastavitev v openair paketu je tudi moznost type, ki zelo poenostavi analizo casovnihvrst. Gre za pogojno primerjavo dveh spremenljivk glede na tretjo spremenljivko. Tako lahkorecimo narisemo graf odvisnosti y od x za razlicna obmocja spremenljivke z. Za type lahkouporabimo katerokoli spremenljivko: ”numeric”, ”character” ali ”factor”. V paketu je dolocenihnekaj ze definiranih vrednosti za casovno komponento, ki so zdruzene v Tabeli 5.4.

Tabela 5.4: Pred-nastavljene vrednosti za nastavitev type.

Opcija razdeli podatke na:

”year” leto”hour” ura v dnevu (0 do 23)”month” mesec v letu”season” pomlad, poletje, jesen, zima”weekday” delovni dnevi (ponedeljek, torek,. . . )”weekend” sobota, nedelja, delovni dnevi”monthyear” vse kombinacije mesec-leto”gmtbst” uposteva loceno obdobje za poletni cas (DST)”daylight” noc in dan

5.1.2 Oblikovanje besedila na grafih - funkcija expression()

Za pisanje podpisanih in nadpisanih znakov v besedilu na grafih (pisanje enot) lahko uporabimofunkcijo expression(), kot je prikazano v primerih v Tabeli 5.5. Primeri so povzeti po navodilihza openair [4].

Tabela 5.5: Primeri pogosto uporabljanih zapisov enot s podrocja kakovosti zraka.

Besedilo Expression zapis

NOX ylab = expression("NO"[X])

PM2.5 ylab = expression("PM"[2.5])

(µg m−3) ylab = expression("(" ∗ mu ∗ "g m" ^-3 ∗ ")")

PM10 (µg m−3) ylab = expression("PM"[10] ∗ " (" ∗ mu ∗ "g m" ^-3 ∗ ")")

T (°C) ylab = expression("T (" ∗ degree ∗ "C)")

Nekatere enote openair ze sam prepozna in samodejno pravilno oblikuje.

36

Page 38: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

5.2 Primeri uporabe najosnovnejsih funkcij

5.2.1 timeAverage()

S funkcijo timeAverage si lahko pomagamo pri agregiranju podatkov na razlicne casovne inter-vale. S funkcijo lahko racunamo tako povprecja, kot tudi nekatere druge statisticne vrednosti.Dva glavna primera uporabnosti agregiranja podatkov sta:

� Zdruzevanje podatkovnih nizov z razlicno frekvenco vzorcenja – v nasem primeru imamo30-minutne meteoroloske podatke in urne vrednosti parametrov kakovosti zraka, ki jih bopred skupno uporabo potrebno preurediti na enako casovno skalo.

� Delo z veliko kolicino podatkov – z agregiranjem skrajsamo cas analize, zmanjsamo sum. . .

Funkcija timeAverage ima tudi to prednost, da pravilno izracuna povprecja smeri vetra, sajobravnava smer vetra kot vektor.

Funkcijo lahko uporabljamo s podatki, ki imajo stolpec z imenom ”date” v obliki POSIXctali Date.

V primeru nasega podatkovnega okvirja ”go” lahko to funkcijo uporabimo za agregiranjepodatkov v 1-urna povprecja, kar bomo kasneje uporabili pri risanju grafov.

# i z r a cunamo urna povpre c j a> go .1h <− t imeAverage ( g o , a v g . t i m e = ”1 hour ” )

# i z r a cunamo maksimalne dnevne v r e d n o s t i parametrov> g o . a i r . d a y . m a x <− t imeAverage ( g o . a i r , a v g . t i m e = ” day ” , s t a t i s t i c = ”max” )

Najpogosteje uporabljane nastavitve funkcije so zbrane v Tabeli 5.6.

Tabela 5.6: Nastavitve funkcije timeAverage.

Nastavitev Opis in moznosti

avg.time interval za agregiranje podatkov: ”sec”, ”min”, ”hour”, ”day”, ”week”,”month”, ”quarter”, ”year”, ”season”

statistic statisticna vrednost, ki jo zelimo izracunati pri agregiranju –privzeta vrednost je ”mean”; ”max”, ”min”, ”median”, ”frequency”,”sd”, ”percentile”

V primeru, da zelimo casovno vrsto le ”zgladiti”, lahko uporabimo tudi funkcijo, ki izracunatekoce povprecje: rollingMean (Slika 5.1). Vec o nastavitvah funkcije si lahko preberete naHelp straneh.

37

Page 39: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

PM

10, r

ollin

g8P

M10

0

10

20

30

40

02/08 03/08 04/08 05/08

PM10 rolling8PM10

Slika 5.1: Primer uporabe funkcije rollingMean.

5.2.2 summaryPlot()

Funkcija summaryPlot omogoca hiter graficni in statisticni pregled podatkov. Podatki morajovsebovati stolpec z datumom poimenovan ”date”.

Poskusimo uporabiti summaryPlot za pregled nasih ”go.air” (Slika 5.2 a) in ”go.1h” podatkov(Slika 5.2 b):

# a ) z uporabo p r i v z e t i h n a s t a v i t e v> summaryPlot ( g o . a i r , p e r i o d = ” months ” )

# b ) namesto h i s t o g r a m a uporabimo g o s t o t o p o r a z d e l i t v e ( d e n s i t y ) i n spremenimob a r v e

> summaryPlot ( go .1h [ , c ( 1 : 3 , 1 0 : 1 2 ) ] , p e r i o d = ” months ” , t y p e = ” d e n s i t y ” ,c o l . d a t a = ” b l u e ” , c o l . h i s t = ” g r e y ” ,d a t e . b r e a k s = 3 , main = ” P r e g l e d podatkov ” ,x l a b = c ( ”datum” , ” v r e d n o s t ” ) ,y l a b = c ( ”” , ” Gostota p o r a z d e l i t v e ” ) )

Funkcija za vsak numericni parameter v podatkih izrise dva grafa. Na levi poda prikazcasovnega poteka parametra z osnovno statistiko in oznako manjkajocih podatkov, na desni papoda porazdelitev vrednosti parametra, ki je predstavljena s histogramom ali linijskim grafom.

Casovni potek podatkov predstavlja normalizirana dnevna povprecja, manjkajoci podatki paso zaradi razlocnosti prikazani samo za obdobja daljsa od 24 ur.

Najpogosteje uporabljane nastavitve funkcije so zbrane v Tabeli 5.7.

38

Page 40: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

a)

date

Jul 18 Jul 25 Aug 01 Aug 08

missing = 0 (0%)

min = 1

max = 46

mean = 16.3

median = 14

95th percentile = 43

100 % 100 %

PM

10

missing = 0 (0%)

min = 1

max = 56

mean = 21.6

median = 14

95th percentile = 55

100 % 100 %

NO

2

missing = 29 (4%)

min = 3

max = 162

mean = 73.6

median = 71

95th percentile = 136.5

96 % 95.8 %

O3

value

Per

cent

of T

otal

0

5

10

15

0 10 20 30 40

05

10152025

0 10 20 30 40 50

0

5

10

15

0 50 100 150

b)

datum

Jul 11 Jul 18 Jul 25 Aug 01 Aug 08

missing = 49 (6.2%)min = 999max = 1017

mean = 1008.7median = 1009

95th percentile = 1014

100 % 81.5 %

p

missing = 49 (6.2%)min = 10.1max = 33.6

mean = 23.8median = 23.3

95th percentile = 32

100 % 81.5 %

T

missing = 74 (9.3%)min = 1max = 46

mean = 16.3median = 14

95th percentile = 43

86 % 100 %

PM

10

missing = 74 (9.3%)min = 1max = 56

mean = 21.6median = 14

95th percentile = 55

86 % 100 %

NO

2

missing = 103 (13%)min = 3max = 162

mean = 73.6median = 71

95th percentile = 136.5

82.6 % 95.8 %

O3

vrednost

Gos

tota

por

azde

litve

0.000.050.100.15

1000 1005 1010 1015

0.000.020.040.06

5 10 15 20 25 30 35

0.000.010.020.030.04

0 10 20 30 40 50

0.000.010.020.03

0 20 40 60

0.0000.0040.008

0 50 100 150

Pregled podatkov

Slika 5.2: Pregled podatkov s funkcijo summaryPlot z osnovnimi nastavitvami (a) in s spremin-janjem osnovnih nastavitev (b).

5.2.3 timePlot()

Funkcija timePlot je namenjena risanju grafov casovnega poteka podatkov. Pri tem lahkonarisemo potek vec parametrov na istem grafu ali uporabimo sestavljen graf z razlicnimi skalami

39

Page 41: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

Tabela 5.7: Nastavitve funkcije summaryPlot.

Nastavitev Opis in moznosti

type za izbiro grafa za prikaz porazdelitve: ”histogram” ali ”density”

period obseg casovnega prikaza glede na obseg podatkov: ”months” ali ”years”

col.trend barva za prikaz casovnega poteka parametrov;z ukazom colors() R prikaze vsa imena barv

col.data barva za prikaz obdobja s podatki

col.mis barva za prikaz manjkajocih podatkov

col.hist barva za prikaz histograma ali porazdelitve

za razlicne parametre. Poljubno lahko tudi spreminjamo barvo in debelino crt, format zapisadatuma, normaliziramo podatke. . .

Funkcija timePlot vsebuje tudi moznost socasnega povprecenja podatkov z nastavitvijoavg.time, ki deluje podobno kot v funkciji timeAverage v poglavju 5.2.1.

Primer uporabe:V primeru a) (Slika 5.3 a) narisemo casovni potek spremenljivke PM10 s privzetimi nastavit-

vami.V primeru b) (Slika 5.3 b) s funkcijo c() izberemo vec spremenljivk, z date.format dolocimo,

v kaksnem formatu bomo izpisali datum na x-osi, z date.breaks vplivamo na razmak medoznakami na x-osi. Debelino linije dolocimo z lwd (line width).

Spremenljivki PM10 in NO2 lahko narisemo na isti graf, saj imata vrednosti v podobnemobmocju (Slika 5.3 c). To naredimo z ukazom group = TRUE. Z ylim lahko spreminjamo skaloy-osi.

V primeru d) (Slika 5.3 d) uporabimo se 6-urno povprecje parametrov z avg.time, spre-menimo tip linij – lty in barve – col. S funkcijo ref.y = list() dodamo horizontalno ref-erencno crto, ki oznacuje 50µg m−3.

# a ) i z b e r e m o eno s p r e m e n l j i v k o> t i m e P l o t ( g o . 1 h , p o l l u t a n t = ”PM10” ,

y l a b = e x p r e s s i o n ( ”PM” [ 1 0 ] * ” ( ” * mu * ”g m” ˆ−3 * ” ) ” ) )

# b ) i z b e r e m o ve c s p r e m e n l j i v k> t i m e P l o t ( g o . 1 h , p o l l u t a n t = c ( ”PM10” , ”NO2” , ”O3” , ”T” , ”p” , ”ws” ) ,

d a t e . f o r m a t = ”%d/%m” , d a t e . b r e a k s = 10 , lwd = 2 )

# c ) i z b e r e m o ve c s p r e m e n l j i v k i n j i h n a r i s emo na skupen g r a f> t i m e P l o t ( g o . 1 h , p o l l u t a n t = c ( ”PM10” , ”NO2” ) ,

group = TRUE, y l i m = c (0 , 7 5 ) , # nastav imo meje za y−osd a t e . f o r m a t = ”%d/%m” , d a t e . b r e a k s = 10 ,y l a b = e x p r e s s i o n ( ”PM” [ 1 0 ] * ” , NO” [ 2 ] * ” ( ” * mu * ”g m” ˆ−3 * ” ) ” ) )

# d ) n a r i s emo 6−urna povpre c j a

40

Page 42: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

> t i m e P l o t ( g o . 1 h , p o l l u t a n t = c ( ”PM10” , ”NO2” ) ,group = TRUE , a v g . t i m e = ”6 hour ” ,d a t e . f o r m a t = ”%d/%m” , d a t e . b r e a k s = 10 , # l a s t n o s t i x−os il t y = 1 , c o l s = c ( ” orange ” , ” d a r k g r e y ” ) , lwd = 2 , # l a s t n o s t i l i n i jr e f . y = l i s t ( h = 50 , l t y = 2 , lwd = 2 , c o l = ” r e d ” ) ,y l a b = e x p r e s s i o n ( ”PM” [ 1 0 ] * ” , NO” [ 2 ] * ” ( ” * mu * ”g m” ˆ−3 * ” ) ” ) )

Najpogosteje uporabljane moznosti nastavtev funkcije timePlot so zbrane v Tabeli 5.8.

Tabela 5.8: Nastavitve funkcije timePlot.

Nastavitev Opis in moznosti

pollutant izbor parametrov, ki jih zelimo izrisati;ime stolpca v navednicah

group privzeta nastavitev je FALSE, kar pomeni, da parametre risemo vsakegana svoj graf z drugacno skalo; TRUE pa rise vse parametre na isti graf

avg.time dolocimo obdobje za agregiranje podatkov (povprecenje);uporabimo lahko ”sec”, ”min”, ”hour”, ”day”, ”DSTday”, ”week”,”month”, ”quarter” ali ”year”

statistic statisticni izracun, ki ga uporabimo pri agregiranju podatkov z avg.time:”mean”, ”max”, ”min”, ”median”, ”frequency” (stevilo veljavnihpodatkov v obdobju), ”sd” (standardni odklon), ”percentile” (zahtevadodatne nastavitve percentile).

type dolocimo pogojno locevanje podatkov glede na casovno komponentoali tretjo spremenljivko; vec moznosti je predstavljenih v poglavju 5.1.1

cols barve, ki jih uporabljamo pri risanju; menjamo lahko med paletami”default”, ”increment”, ”heat”, ”jet”, ali uporabimo posamezna imenabarv, ki jih prepozna R (colours())

ref.x, ref.y dodajanje vertikalnih (ref.x) ali horizontalnih (ref.y) referencnih crt;primer: ref.x = list(v = as.POSIXct("2016-07-25"), lty = 5)

ali ref.y = list(h = 50, lty = 5)

name.pol spreminjanje imen parametrov, ce hocemo drugacen zapis v legendi,kot je ime stolpca; na primer ce zelimo namesto ”ws” in ”wd”uporabiti ”hitrost vetra” in ”smer vetra” to dolocimo zname.pol = c("hitrost vetra", "smer vetra")

date.breaks spreminjamo stevilo glavnih oznak na x-osi; funkcija nato samaprilagodi stevilo oznak, tako da najbolj ustreza izbranemu

date.format dolocanje oblike zapisa datuma;uporabimo oznake funkcije strptime (Tabela 4.2)

Kaj pa v primeru, ce zelimo narisati le doloceno omejeno obdobje? Zelo uporabna funkcijaza casovno izlocanje podatkov je selectByDate(), ki jo bomo spoznali v naslednjem poglavju.

41

Page 43: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

a) casovni potek ene spremenljivke

PM

10 (

µg m

−3)

0

10

20

30

40

Jul 11 Jul 18 Jul 25 Aug 01 Aug 08

PM10

b) casovni potek vecih spremenljivk

PM

10, N

O2,

O3,

T, p

, ws

010203040

PM

10

02040

NO

2

050

100150

O3

1015202530

T

1000100510101015

p

246

10/07 12/07 14/07 16/07 18/07 20/07 22/07 24/07 26/07 28/07 30/07 01/08 03/08 05/08 07/08 09/08 11/08

win

d sp

d.

PM10 NO2 O3 T p wind spd.

c) dve spremenljivki na istem grafu

PM

10, N

O2

(µg

m−3

)

20

40

60

10/07 12/07 14/07 16/07 18/07 20/07 22/07 24/07 26/07 28/07 30/07 01/08 03/08 05/08 07/08 09/08 11/08

PM10 NO2

d) 6-urno povprecenje spremenljivk

PM

10, N

O2

(µg

m−3

)

0

10

20

30

40

50

10/07 12/07 14/07 16/07 18/07 20/07 22/07 24/07 26/07 28/07 30/07 01/08 03/08 05/08 07/08 09/08 11/08

PM10 NO2

Slika 5.3: Primeri uporabe funkcije timePlot.

42

Page 44: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

5.2.4 selectByDate()

Izlocanje casovnih odsekov je lahko precej casovno zamudno tako za zacetne uporabnike R,kot tudi za izkusene uporabnike. Zato je funkcija selectByDate izredno uporabna, saj omogocaizbor posameznega dela podatkov glede na cas. Lahko jo uporabljamo samostojno ali pa vgrajenov druge funkcije.

Nastavitve, ki jih omogoca funkcija, so zbrane v Tabeli 5.9.

Tabela 5.9: Nastavitve funkcije selectByDate.

Nastavitev Opis in moznosti

start zacetni datum v obliki ”d/m/yyyy” ali v R obliki ”YYYY-mm-dd”

end koncni datum (podobno kot start)

year izbor let: year = 2010:2016 - vsa leta od 2010 do 2016year = c(2010, 2016) - samo leti 2010 in 2016

month izbor mesecev - izbiramo lahko stevilcno ali z angleskimi imeni mesecev:month = 1:6 - vsi meseci od januarja do junijamonth = c("January", "June") - samo meseca januar in junij

day izbor dni - izbiramo lahko dneve v mesecu (1-31) ali z angleskimi imenidnevov v tednu day = c("Monday", "Wednesday") aliday = 1:10 - prvih deset dni v mesecu;sprejema tudi ”weekday” (ponedeljek - petek) in ”weekend” (sobota, nedelja)

hour izbor ure (0-23)hour = 0:12 - prvih 12 ur v dnevu

# a ) i z r e zemo i z s e k , ga shran imo kot o b j e k t i n nato n a r i s emo> g o . 1 h . i z s e k <− s e l e c t B y D a t e ( g o . 1 h , s t a r t = ”24/7/ 2016 ” , end = ”31/7/ 2016 ” )

> t i m e P l o t ( g o . 1 h . i z s e k , p o l l u t a n t = c ( ”PM10” , ”NO2” ) ,group = TRUE , y l i m = c (0 , 7 5 ) , d a t e . f o r m a t = ”%d/%m” ,y l a b = e x p r e s s i o n ( ”PM” [ 1 0 ] * ” , NO” [ 2 ] * ” ( ” * mu * ”g m” ˆ−3 * ” ) ” ) )

# b ) n a r i s emo i z s e k z vgnezdeno f u n k c i j o s e l e c t B y D a t e

> t i m e P l o t ( s e l e c t B y D a t e ( g o . 1 h , s t a r t = ”24/7/ 2016 ” , end = ”31/7/ 2016 ” ) ,p o l l u t a n t = c ( ”T” , ” rh ” ) , c o l s = ” j e t ” , lwd = 2 ,name.po l = c ( e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) , ”RH (%)” ) ,y l a b = NULL , key = FALSE)

43

Page 45: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

a)

PM

10, N

O2

(µg

m−3

)

20

40

60

25/07 26/07 27/07 28/07 29/07 30/07 31/07 01/08

PM10 NO2

b)

20

25

30

T (

°C)

40

60

80

100

Jul 25 Jul 26 Jul 27 Jul 28 Jul 29 Jul 30 Jul 31 Aug 01

RH

(%

)

Slika 5.4: Primeri uporabe funkcije selectByDate.

44

Page 46: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

5.2.5 scatterPlot()

scatterPlot je funkcija za risanje razsevnih diagramov. Te vrste diagrami so zelo prirocnipri iskanju odvisnosti med spremenljivkami. Poleg osnovnih moznosti za risanje tovrstnih dia-gramov ponuja openair tudi moznost risanja linearne korelacije ali razdelitev diagrama gledena vrednosti tretje spremenljivke.

Na x-os lahko narisemo tudi cas, kar predstavlja alternativo timePlot funkciji (Slika 5.6).Poglejmo si nekaj primerov uporabe funkcije scatterPlot:

# a )> s c a t t e r P l o t ( g o . 1 h , x = ”T” , y = ” rh ” )

# uvedemo novo s p r e m e n l j i v k o ” ura ” , k i v s e b u j e uro v l o k a l n e m# ( v tem p r i m e r u poletnem − CEST) c asu> go .1h $ ura <− s t r f t i m e ( go .1h $ d a t e , fo rmat = ”%H” , t z = ” Europe / L j u b l j a n a ” )

# uro spremenimo v ” f a c t o r ”> go .1h $ ura <− a s . f a c t o r ( go .1h $ ura )

# b ) obarvamo to c ke g l e d e na uro v dnevu i n d o p i s emo e n o t e> s c a t t e r P l o t ( g o . 1 h , x = ”T” , y = ” rh ” , group = ” ura ” , c o l s = ” j e t ” ,

x l a b = e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) ,y l a b = ”RH (%)” )

# c ) n a r i s emo o d v i s n o s t t e m p e r a t u r e od son c nega o b s e v a n j a> s c a t t e r P l o t ( g o . 1 h , x = ” g l o b . r a d ” , y = ”T” , group = ” ura ” , c o l s = ” he a t ” ,

y l a b = e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) ,x l a b = e x p r e s s i o n ( ” G l o b a l n o s e v a n j e (W m” ˆ−2 * ” ) ” ) )

# i z b e r e m o l e p p o p o l d a n s k e u r e , shran imo kot o b j e k t a> a <− s c a t t e r P l o t ( s e l e c t B y D a t e ( g o . 1 h , hour = 1 2 : 2 3 ) ,

x = ” g l o b . r a d ” , y = ”T” ,l i n e a r = TRUE , c i = FALSE , c o l s = ” r e d ” ,y l a b = e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) ,x l a b = e x p r e s s i o n ( ” G l o b a l n o s e v a n j e (W m” ˆ−2 * ” ) ” ) ,f o n t s i z e = 20 , cex = 0 . 5 )

# i z b e r e m o l e d o p o l d a n s k e u r e , shran imo kot o b j e k t b> b <− s c a t t e r P l o t ( s e l e c t B y D a t e ( g o . 1 h , hour = 0 : 1 1 ) ,

x = ” g l o b . r a d ” , y = ”T” ,l i n e a r = TRUE , c i = FALSE , c o l s = ” l i m e g r e e n ” ,y l a b = e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) ,x l a b = e x p r e s s i o n ( ” G l o b a l n o s e v a n j e (W m” ˆ−2 * ” ) ” ) ,f o n t s i z e = 20 , cex = 0 . 5 )

# d ) n a r i s emo g r a f ”a” i n g r a f ”b” na i s t o s l i k o> p r i n t ( b , s p l i t = c (1 , 1 , 2 , 1 ) )> p r i n t ( a , s p l i t = c (2 , 1 , 2 , 1 ) , newpage = FALSE)

# e ) r i s a n j e c asovnega poteka> s c a t t e r P l o t ( g o . 1 h , x = ” d a te ” , y = ”O3” ,

s p l i n e = TRUE , smooth = TRUE ,x l a b = ”Datum” ,y l a b = e x p r e s s i o n ( ”O” [ 3 ] * ” ( ” * mu * ”g m”ˆ−3 * ” ) ” ) ,d a t e . f o r m a t = ”%d/%m” )

Nastavitve, ki jih omogoca funkcija, so zbrane v Tabeli 5.10.

45

Page 47: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

a)

T

rela

tive

hum

idity

40

60

80

100

10 15 20 25 30

b)

T (°C)R

H (

%)

40

60

80

100

10 15 20 25 30

ura 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

c)

Globalno sevanje (W m−2)

T (

°C)

10

15

20

25

30

0 200 400 600 800 1000

ura 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

d)dopoldne

Globalno sevanje (W m−2)

T (

°C)

10

15

20

25

30

0 200 400 600 800

T=0.015[glob.rad]+18 R2=0.75

popoldne

Globalno sevanje (W m−2)

T (

°C)

15

20

25

30

0 200 400 600 800 1000

T=0.0099[glob.rad]+23 R2=0.53

Slika 5.5: Primeri uporabe funkcije scatterPlot.

46

Page 48: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

e)

Datum

O3

(µg

m−3

)

0

50

100

150

11/07 18/07 25/07 01/08 08/08

Slika 5.6: Risanje casovnega poteka spremenljivke z uporabo funkcije scatterPlot. Tockepovezuje krivulja spline, trend pa je predstavljen z moznostjo smooth.

Tabela 5.10: Nastavitve funkcije scatterPlot.

Nastavitev Opis in moznosti

x ime parametra na x-osi (numericna spremenljivka, faktor ali datum)

y ime numericnega parametra na y-osi

z ime numericnega parametra z, ki doloca zvezno barvno skalo tock

group dolocimo lahko parameter za grupiranje. Ce je parameter oblike ”characterali ”factor” se tocke posamezne grupe razlikujejo po barvi in obliki simbola.

Ce je parameter oblike ”numeric” pa razdeli ta parameter v kvantile.

type uporabljamo kot je razlozeno v poglavju 5.1.1

smooth s smooth = TRUE skozi tocke narisemo glajeno krivuljo s 95 % intervalomzaupanja (Slika 5.6)

spline s spline = TRUE skozi tocke narisemo krivuljo (Slika 5.6)

linear z linear = TRUE narisemo regresijsko premico

ci dolocimo, ali poleg smooth/linear prikazemo tudi interval zaupanja

key privzeto je key = TRUE – poleg diagrama dodamo legendo

key.title naslov legende, ce jo uporabljamo

47

Page 49: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

5.2.6 windRose()

Funkcija windRose omogoca izris vetrovnih podatkov v obliki vetrovne roze. Vetrovna roza je di-agram, ki prikaze porazdelitev po smeri vetra, hkrati pa so z barvami oznaceni se razredi hitrostivetra v posamezni smeri. Z uporabo takega diagrama se izognemo tezavam pri prezentaciji smerivetra, ki je ciklicna spremenljivka (naslednja vrednost po 359 ◦ je zopet 0 ◦) in jo zato tezje pred-stavimo v obliki xy grafov.

V primeru a) je prikazana osnovna oblika vetrovne roze, ki jo dobimo, ce funkciji windRosepodamo zgolj podatke o hitrosti in smeri vetra (Slika 5.7).

Primer b) (Slika 5.8) pa prikazuje vetrovno rozo, pri kateri smo dolocili korak za smer (angle)in hitrost vetra (ws.int). Opustili smo osnovno predstavitev smeri v obliki rock (paddle=FALSE)in avtomatsko besedilo (annotate=FALSE). Dolocili smo tudi, da zelimo legendo za hitrost vetraraztegniti na celotno dolzino vetrovne roze (key = list(height = 1)).

# a ) v e t r o v n a r o z a − osnovne n a s t a v i t v e> windRose ( b i l j e . b r e z N A , ws = ”ws” , wd = ”wd” )

# b ) v e t r o v n a r o z a z i z b r a n i m korakom za smer i n h i t r o s t v e t r a> windRose ( b i l j e . b r e z N A , ws = ”ws” , wd = ”wd” ,

a n g l e = 45 ,w s . i n t = 1 ,b r e a k s = 8 ,p a d d l e = FALSE,a n n o t a t e = FALSE,key = l i s t ( h e i g h t = 1) ,main = ” Vetrovna r o z a” )

Nekaj osnovnih nastavitev funkcije windRose je zbranih v Tabeli 5.11.

a)

Frequency of counts by wind direction (%)

W

S

N

E

10%

20%

30%

40%

50%

60%

mean = 2.13calm = 0%

0 to 2 2 to 4 4 to 6 6 to 7.5

(m s−1)

Slika 5.7: Primer osnovne uporabe funkcije windRose.

48

Page 50: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

b)

Vetrovna roža

W

S

N

E

10%

20%

30%

40%

50%

60%

70%

0 to 1 1 to 2 2 to 3 3 to 4 4 to 5 5 to 6 6 to 7 7 to 7.5

(m s−1)

Slika 5.8: Primer uporabe funkcije windRose z izbranim korakom za smer in hitrost vetra.

Tabela 5.11: Nastavitve funkcije windRose.

Nastavitev Opis in moznosti

ws ime stolpca s podatki o hitrosti vetra

wd ime stolpca s podatki o smeri vetra

angle korak smeri vetra; osnovna vrednost je 30, uporabni sta se 45 in 10

ws.int korak hitrosti vetra; osnovna vrednost je 2 m/s

breaks stevilo korakov hitrosti vetra; osnovna nastavitev so 4 koraki

paddle s paddle = TRUE nastavimo rocke v obliki skatel (kot Slika 5.7);paddle = FALSE narise rocke v obliki rezin (kot Slika 5.8)

annotate z annotate = TRUE izpisemo odstotek meritev brez vetra inpovprecno hitrost skupaj z osnovnim opisom grafa;annotate = FALSE izpusti ta izpis

49

Page 51: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

5.2.7 timeVariation()

Funkcija timeVariation je namenjena ugotavljanju povprecnih dnevnih potekov dolocene spre-menljivke z upostevanjem razlicnih casovnih obdobij. Predvsem je uporabna pri analizi podatkovo kakovosti zraka, saj so ti parametri zelo odvisni od vremenskih razmer in od antropogenihvplivov. Tako imajo lahko parametri, ki so vezani na emisije iz prometa, cisto drugacen dnevniin tedenski casovni potek kot parametri, ki so posledica naravnih vplivov.

S funkcijo timeVariation izdelamo stiri diagrame, casovni potek v posameznih dnevih tedna,povprecen dnevni casovni potek, povprecne vrednosti po mesecih in povprecne vrednosti dni vtednu. Na diagramih je prikazana povprecna vrednost in 95 % interval zaupanja ali mediana skvantili.

Nekaj primerov uporabe:

# a ) c a s n o v i potek t e m p e r a t u r e v l o k a l n e m c asu> t i m e V a r i a t i o n ( g o . 1 h , p o l l u t a n t = ”T” ,

x l a b = c ( ” ura ” , ” ura ” , ” mesec ” , ” dan v tednu ” ) ,y l a b = e x p r e s s i o n ( ”T ( ” * d e g r e e * ”C) ” ) ,l o c a l . t z = ” Europe / L j u b l j a n a ” ,sub = ” povprecna v r e d n o s t i n 95 % i n t e r v a l z a u p a n j a ” )

# b ) p r i p r i k a z u dveh s p r e m e n l j i v k l a h k o podatke n o r m a l i z i r a m o> t i m e V a r i a t i o n ( g o . 1 h , p o l l u t a n t = c ( ”T” , ” rh ” ) ,

x l a b = c ( ” ura ” , ” ura ” , ” mesec ” , ” dan v tednu ” ) ,n o r m a l i s e = TRUE , s t a t i s t i c = ” median ” ,name.po l = c ( ”T” , ”RH” ) , c o l s = c ( ” l i m e g r e e n ” , ” orange ” ) ,l o c a l . t z = ” Europe / L j u b l j a n a ” ,sub = ” med iana , 25/75 i n 5/95 k v a n t i l ” , a l p h a = 0 . 3 )

Ko prikazujemo casovni potek meteoroloskih spremenljivk ali podatkov o kakovosti zraka,je zelo pomembno, da prikazujemo lokalni cas, saj je vecina spremenljivk vezana na lokalni cas– uporabimo "local.tz = "Europe/Ljubljana". Rezultati zgornjih primerov so prikazani naSliki 5.9.

Nastavitve, ki jih omogoca funkcija, so zbrane v Tabeli 5.12.

50

Page 52: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

a)

ura

T (

°C)

15

20

25

30

0 6 12 18 23

Monday

0 6 12 18 23

Tuesday

0 6 12 18 23

Wednesday

0 6 12 18 23

Thursday

0 6 12 18 23

Friday

0 6 12 18 23

Saturday

0 6 12 18 23

Sunday

T

ura

T (

°C)

20

25

30

0 6 12 18 23

mesec

T (

°C)

23.0

23.5

24.0

24.5

J F M A M J J A S O N D

dan v tednu

T (

°C)

22

23

24

25

Mon Tue Wed Thu Fri Sat Sun

povprecna vrednost in 95 % interval zaupanja

b)

ura

norm

alis

ed le

vel

0.40.60.81.01.21.4

0 6 12 18 23

Monday

0 6 12 18 23

Tuesday

0 6 12 18 23

Wednesday

0 6 12 18 23

Thursday

0 6 12 18 23

Friday

0 6 12 18 23

Saturday

0 6 12 18 23

Sunday

T RH

ura

norm

alis

ed le

vel

0.6

0.8

1.0

1.2

1.4

0 6 12 18 23

mesec

norm

alis

ed le

vel

0.6

0.8

1.0

1.2

1.4

J F M A M J J A S O N D

dan v tednu

norm

alis

ed le

vel

0.6

0.8

1.0

1.2

1.4

Mon Tue Wed Thu Fri Sat Sun

mediana, 25/75 in 5/95 kvantil

Slika 5.9: Primeri uporabe funkcije timeVariation.

51

Page 53: Univerza v Novi Gorici R in RStudio - programsko okolje za

5.2. PRIMERI UPORABE NAJOSNOVNEJSIH FUNKCIJ 5. PAKET OPENAIR

Tabela 5.12: Nastavitve funkcije timeVariation.

Nastavitev Opis in moznosti

pollutant izbor spremenljivk; lahko jih je vec

local.tz dolocimo lokalni cas, v katerem zelimo prikazati casovni potek (upostevatudi DST); za Slovenijo uporabimo local.tz = "Europe/Ljubljana"

normalise normalise = TRUE, ce zelimo normalizirati rezultate

xlab, ylab naslovi osi

type uporabljamo, kot je razlozeno v poglavju 5.1.1

name.pol spreminjanje imen spremenljivk

statistic moznosti: "mean" - povprecna vrednost in 95 % interval zaupanja (5.9 a),ali "median" - mediana, 5/95 in 25/75 kvantil (Slika 5.9 b)

sub spreminjanje podnapisa celotne slike

alpha dolocanje prosojnosti barvnih intervalov

52

Page 54: Univerza v Novi Gorici R in RStudio - programsko okolje za

II

Prakticni primeri

53

Page 55: Univerza v Novi Gorici R in RStudio - programsko okolje za

Se nekaj nasvetov

Za prakticno delo s podatki je potrebno odpreti nov projekt. Pomembno je, da vse ukaze, kijih uporabite, pisete v obliki skripte, saj boste le tako lahko kasneje ponovili postopek. Obenemskripta predstavlja koncni rezultat tega tecaja.

V RStudiu novo skripto odprete s klikom na File → New File → R Script. S klikomna ikono “Compile notebook” lahko izdelate pdf/Word porocilo, v katerem bodo poleg kodevkljuceni tudi vsi rezultati vase kode. Za lep izgled porocila je sicer potrebnih nekaj dodatnihnastavitev, ki pa presegajo obseg tega tecaja.

Ker se primeri navezujejo in nadgrajujejo, izdelajte za celoten sklop vaj eno porocilo, torejeno skripto.

Podatki, ki jih potrebujete za izvedbo vaj, so shranjeni v mapi ”20161004”, ki je dostopnav sklopu ”Delavnica R - Podatki” na spletni strani FZO. Organizirani so v dva sklopa (dvedatoteki) in so v enaki obliki, kot jih dobimo na spletnih strani Agencije Republike Slovenije zaOkolje (ARSO) www.arso.gov.si/.

� bilje-meteo-primeri.txt: vremenski podatki za postajo Bilje, 1. 9. 2015 do 31. 8. 2016

� NG-air-primeri.csv: podatki kakovosti zraka za Novo Gorico, 1. 2. 2016 do 30. 4. 2016

Resitve prakticnih primerov bodo po tecaju dostopne na spletni strani FZO - Delavnica R.

54

Page 56: Univerza v Novi Gorici R in RStudio - programsko okolje za

6

Primeri

6.1 Prepoznavanje in spreminjanje casovnega zapisa

a) V R uvozite oba podatkovna niza.

b) Uredite imena stolpcev za oba podatkovna okvirja.

c) Uredite casovni zapis – pretvorite zapis casa v pravilen format, nastavite cas v UTC.

6.2 Urejanje in zdruzevanje podatkov

a) Najpej za oba podatkovna okvirja uskladite casovni korak. Urejene podatke shranite vnov podatkovni okvir.

b) Izvozite podatke s spremenjenim casovnim korakom v .csv datoteko.

c) Zdruzite podatkovna okvirja po casu v skupen podatkovni okvir.

d) Iz zdruzenih podatkov izlocite podatke od 1. 2. 2016 do 30. 4. 2016 in izrisite povzetekza izlocene podatke.

6.3 Analiza in prikaz meteoroloskih podatkov

a) Izrisite casovni potek vremenskih parametrov za celotno obdobje (pozorni bodite na imenaosi in zapis enot).

b) Prikazite razmerje med temperaturo in relativno vlaznostjo, grupirano po posameznihmesecih.

c) Prikazite razmerje med temperaturo in relativno vlaznostjo glede na soncno obsevanje zaobdobja, ko ni padavin.

d) Prikazite razmerje med temperaturo in relativno vlaznostjo glede na soncno obsevanje zavsa opazovanja v aprilu 2016 med 12. in 16. uro po lokalnem casu.

e) Veter prikazite z vetrovno rozo po posameznih sezonah.

f) Prikazite povprecen dnevni potek hitrosti vetra.

55

Page 57: Univerza v Novi Gorici R in RStudio - programsko okolje za

6.4. ANALIZA IN PRIKAZ PODATKOV O KAKOVOSTI ZRAKA 6. PRIMERI

6.4 Analiza in prikaz podatkov o kakovosti zraka

a) Prikazite casovni potek parametrov kakovosti zraka za obdobje februar – april.

b) Prikazite potek koncentracij PM10 in O3 za obdobje 9. 4. 2016 do 12. 4. 2016.

c) Prikazite povprecen dnevni potek koncentracij PM10 in O3 v lokalnem casu.

d) Prikazite povprecen dnevni potek koncentracij NO, NO2, NOx in O3.

e) Prikazite odvisnost koncentracij PM10 od hitrosti vetra glede grupirano po smeri vetra.

f) Prikazite razmerje med NO2, NOx in NO pri razlicnih koncentracijah O3.

56

Page 58: Univerza v Novi Gorici R in RStudio - programsko okolje za

Literatura

[1] Carslaw, D. C., in Ropkins, K., 2012. openair — An R package for air quality data analysis,Environmental Modelling & Software, v. 27–28, str. 52-61

[2] Crawley, M., 2007. The R Book, West Sussex, England, Wiley

[3] Dalgaard, P., 2008. Introductory Statistics with R, 2nd, Springer, 380 str.

[4] Carslaw, D. C., 2015. The openair manual - open-source tools for analysing air pollutiondata, manual for version 1.1-4, King’s College London.

57