• Rezultati Niso Bili Najdeni

Programski jezik R je statistično naravnan jezik, ki ima iz programerskega vidika vse značilnosti kot ostali jeziki, kar pomeni, da so vse osnovne stvari od zank do pogojnih stavkov in osnovnih operacij definirane na isti način kot pri ostalih jezikih, le sintaksa je malce drugačna. Za osnovno delo bodo opisane in pojasnjene osnovne lastnosti, predvsem različnih osnovnih matematičnih operacij in podatkovnih tipov, kajti sintaksa za strojno učenje bo opisana v naslednjih delih magistrskega dela.

4.2.1 Podatkovni tipi v R

Obstaja več različnih podatkovnih tipov. Za vse podatkovne tipe lahko z ukazom typeof(), kjer v oklepaju podamo ime spremenljivke, preverimo, katerega tipa je neka spremenljivka.

4.2.1.1 Vektor

Najbolj osnovni tip je vektor, ki je element oz. zaporedje elementov istega tipa.

Obstaja 5 različnih vrst vektorjev:

1. znakovni vektor ("Beseda", "A");

2. vektor kompleksnega števila (4 + 3i);

3. celoštevilski vektor (15L, 222L);

4. numerični vektor (5, 1.414213562, 922);

5. logični vektor (true, false).

Uporabljajo se za določanje spremenljivke in so najosnovnejši podatkovni tip.

4.2.1.2 Seznam

Seznamje podatkovni tip, ki lahko vsebuje elemente različnih elementov (števil, zna-kov . . . ). Je enodimenzionalen podatzna-kovni tip.

4.2.1.3 Matrike

Matrike so podatkovni tip, kjer so elementi razporejeni v dveh dimenzijah, vrsticah in stolpcih. Ustvari se jo se s pomočjo ukaza matrix(data, nrow, ncol, byrow, dimnames). Pri tem pa velja:

• data – vhodni vektor, ki se uporabi kot elementi v matriki;

• nrow – število vrstic matrike;

• ncol – število stolpcev matrike;

• byrow – če je TRUE, se vhodni vektor razporedi po vrsticah, sicer po stolpcih;

• dimnames – dodelitev imena vrsticam in stolpcem.

Matrike so uporabne, ker so pregledne in lahko smiselno beležimo podatke. So tudi osnova za kasnejše shranjevanje podatkov v tabele.

4.2.1.4 Array

Arrayje podatkovni tip, ki lahko shranjuje podatke v več kot dveh dimenzijah. Ustvari se ga z ukazomarray(data, dim, dimnames), kjer velja:

• data – vhodni vektor, ki se uporabi kot elementi;

• dim – vektor, ki določa dimenzije;

• dimnames – dodelitev imena vrsticam in stolpcem.

4.2.1.5 Data Frame

Data Frame je tabela oz. dvodimenzionalna struktura, podobna array-u, kjer vsak stolpec vključuje vrednosti ene spremenljivke in vsaka vrstica vsebuje množico vredno-sti vseh danih stolpcev. Struktura je po videzu podobna matrikam. Ustvari se ga s pomočjo ukaza data.frame(data), kjer je data osnovni gradnik tega objekta.

Data Frame se uporablja kot osnovni gradnik programov za modeliranje v R.

Med podatkovnimi tipi brez težav pretvarjamo z vgrajenimi funkcijami. Nekatere izmed njih so:

• as.factor(argument);

• as.matrix(argument);

• as.numeric(argument);

• as.character(argument);

• ...

4.2.1.6 Faktor

Faktor je podatkovni tip, ki se uporablja za zapis kvalitativnih podatkov. Faktorji so lahko urejeni ali neurejeni in so pomembni za risanje grafov in statistično analizo.

Shranjujejo se kot cela števila in imajo imena povezana s temi unikatnimi celimi števili. Faktorji so po navadi videti (ter se tudi tako obnašajo) kot znakovni vektorji.

Ko ustvarimo faktorje, lahko vsebujejo samo prej definirane množice vrednosti, ki jim rečemo nivoji (angl. levels). Po privzetih nastavitvah so v programskem jeziku R nivoji urejeni po abecednem vrstnem redu.

Osnovna sintaksa faktorjev je preprosta, saj z ukazom factor() določimo neki spremenljivki faktor, katerega žeilmo. Preprost primer je napisan spodaj.

imena = factor(c("Micka", "Tone", "Micka", "Tone")) levels(spol)

nlevels(spol)

V tem primeru bi najprej izpisal ”Micka” in ”Tone” v drugem pa število nivojev, ki je v tem primeru enako 2.

4.2.2 Osnovne operacije

Z operacijami lahko spreminjamo in urejamo podatke. Poznamo več različnih tipov operatorjev, v oklepaju je napisan primer uporabe.

1. Aritmetični opreatorji

• seštevanje: + (a + b);

• odštevanje- (a - b);

• množenje: * (a * b);

• deljenje: / (a / b);

• deljenje po modulu: %% (a %% b);

• . . .

2. Relacijski – povratno informacijo poda kot TRUE ali FALSE

• je enako (ekvivalentno): == (a == b);

• ni enako: != (a != b);

• večje od: > (a > b);

• manjše od: < (a < b);

• večje ali enako: >= (a >= b);

• manjše ali enako: <= (a <= b).

3. Operatorji prirejanja – način, kako neki spremenljivki priredimo vrednost.

Možnih je več načinov:

Levi operator prirejanja (ime spremenljivke je na levi strani):

z znakom = (x = 5);

z znakom (prirejanje) <- (x <- 15).

Desni operator prirejanja (ime spremenljivke je na desni strani):

z znakom = (10 = x);

z znakom (prirejanje) -> (10 -> x).

4. Logični operatorji

logični in (&): vrne TRUE, če sta oba vhodna elementa TRUE;

logični ali (|) : vrne TRUE, če je vsaj eden od vhodnih elemntov TRUE;

logični ne – negacija (!): vrne nasprotno logično vrednost vhodnega podatka.

4.2.3 Pogojni stavki

S pogojnimi stavki preverjamo različne pogoje. Osnovna logika je enaka kot pri ostalih programskih jezikih. Pod vsako vrsto pogojnega stavka je z drugačnim tiskom zapisana osnovna sintaksa opisanega stavka. Poznamo več vrst pogojnih stavkov:

1. if stavek – preverja izpolnjevanje enega samega pogoja.

if(pogoj){

stavki }

2. if – else stavek – preverja izpolnjevanje več pogojev.

if(pogoj){

ukazi1 } else{

ukazi2 }

3. switch stavek – uporablja se za preverjanje določenega izraza z znano vredno-stjo.

switch(expression, primer1, primer2, primer3 ...)

4.2.4 Zanke

Z zankami lahko določene stvari ponavljamo, dokler ni izpolnjen pogoj, ki prekine to zanko. Zanke se razlikujejo med seboj in poznamo več vrst zank:

1. Repeat zanka – zanka, ki se uporablja za ponavljanje kode, dokler se ne izpolni pogoj za prekinitev, pogoj za prekinitev je znotraj repeat zanke. Osnovna sinta-ksa je zapisana spodaj.

repeat{

stavki in pogoj }

2. While zanka – zanka, ki se uporablja za ponavljanje kode, dokler se ni izpolnil pogoj za prekinitev, ki je določen na začetku, ko se generira zanka.

while(pogoj){

stavki }

3. For zanka – zanka, ki se uporablja za ponavljanje kode in vemo vnaprej, koli-kokrat se mora ponoviti.

for(pogoj){

stavki }

Poleg tega so v zankah koristne prekinitve in skoki. Podobno kot v ostalih program-skih jezikih sta tu na voljo za prekinitev zanke ukaz break in za preskok določenega cikla zanke ukaz next.