Muutuja on arbitraarse nimega objekt, millele saab omistada väärtusi. R-i reeglite kohaselt peab muutuja nimi algama tähemärgiga (ei saa alata numbriga või olla ainult number) ja nimi ei saa sisaldada matemaatilisi funktsioone ja tühikuid; muus osas on nime panemine täiesti vaba: a, b, x, muutuja1, Toomas, Minu_katseisiku_vanus…
Muutujale omistatakse väärtus kas võrdusmärgiga (=) või noolega (<-), mis RStudios saab klahvikombinatsiooniga Alt-. Võrdusmärgi suund on alati sama, kriips-noole suunda saab ka muuta.
Muutujatega saab teha tehteid
## [1] 9
## [1] 38
ja muutuja väärtuseks võib anda mingi käsurea vastuse:
## [1] 7
Objektitüüp (ehk mode) väärtused võivad olla kas:
Arvud kirjutatakse lihtsalt numbritega. Arvulise väärtusega muutujatega saab teha matemaatilisi tehteid.
## [1] 4
Tekst tuleb kirjutada jutumärkides. Ka numbrid võivad olla tekst.
## [1] "Tartu"
Faktor on järjestatud (piiratud hulga) väärtustega nominaalne muutuja. Miks faktoreid vaja on? Faktori väärtuseid saab järjestada, see on oluline näiteks ordinaalskaalaga muutujate puhul (“vanem”, “keskmine”, “noorem”).
Tõeväärtused - binaarne muutuja, millel on kaks võimalikku väärtust: TRUE/FALSE. Milleks seda vaja on? Näiteks kui me kasutame võrratusi, siis vastuseks on tõeväärtus. Võrratusi läheb meil vaja hiljem, kui meil on näteks suuremast andmestikust vaja leida kindlatele tunnustele vastav alamosa.
## [1] TRUE
## [1] FALSE
Lisaks on R-is oluline kategooria NA ehk tundmatu väärtus. Kõigi objektitüüpide hulgas võib olla tundmatuid väärtusi. Tundmatu väärtusega tehteid tehes on tulemuseks samuti tundmatu väärtus.
## [1] NA
Käsk mode() abil saab küsida, mis tüüpi muutuja on.
## [1] "numeric"
## [1] "character"
## [1] "logical"
Neli põhilist objekti klassi R-is on:
Siin kursusel kasutame põhiliselt vektoreid ja data.frame’e.
R-i põhiobjekt on vektor. Ka ühest elemendist koosnev objekt on vektor. Vektor on ühemõõtmeline objekt, millel võib olla mitu väärtust.
## [1] "numeric" "vector"
Käsk c() kombineerib väärtused kokku vektoriks; järjestikuste arvude jada kooloniga.
Ühes vektoris on kõik elemendid sama tüüpi. Objekti tüüpi ja klassi saab küsida käskudega mode() ja is().
## [1] "numeric"
## [1] "numeric" "vector"
## [1] 5
Käsk c() kombineerib omavahel kokku ka mitu muutujat.
Tehted vektoritega. Tehteid rakendatakse elementide kaupa. Kui vektorid on eri pikkusega, siis lühemat vektorit taaskasutataske.
## [1] 7 9 11 13 15
## [1] 3 0 9 0 15 0 21 0 27 0
Ja kui pikem vektor ei jagu täpselt lühemaga, siis küll lühemat taaskasutatakse nii, et kõik pikema vektori elemendid saaksid endale paarilise, aga kõik lühema vektori elemendid ei saa võrdselt kordusi, mille kohta antakse ka veateade.
## Warning in 1:10 * c(3, 0, 1): longer object length is not a multiple of
## shorter object length
## [1] 3 0 3 12 0 6 21 0 9 30
Siin kursusel kasutame kõige rohkem ilmselt tabeleid, mille klass on data.frame. R-is saab andmeid ka vektoritest data.frame() käsuga tabeliks kokku panna, aga üldjuhul saame me data.frame’i kujulise objekti nii, et loeme tabelina struktureeritud andmeid failist. Käsuga read.table() saab importida R-i tabeleid, mis on näiteks csv formaadis. Kui andmestik on R-is korrastatud ja RData fromaadis salvestatud, siis neid andmestikke saab avada käsuga load(). Näiteks sellisel kujul on moodlis failis kysimustik.RData korrastatud vastused küsimustikule, mida eelmises praktikumis täitsite:
Selle käsurea rakendamisest justkui ei juhtugi midagi, aga töölauale tekkis objekt nimega kysimustik. Nüüd oleks vaja saada natuke aimu, mis see tabel endast kujutab. Selleks proovime käske:
Mis tüüpi andmed on tabelis? Mis skaalal?
Aritmeetilise keskmise leidmiseks on R-is käsk mean(). Üldiselt on selle käsu sisendiks arvuline vektor (või maatriks).
Plussid:
Miinused:
Juhul, kui andmed on tabelis ja tahame ühe arvuliste väärtuste tulba keskmist, siis peame selle tabelist vektorina välja tõmbama. Selleks on R-i süntaksis kolm varianti:
## [1] 1994 1994 1987 1992 1992 1967 1992 1992 1989 1986 1984 1993 1989 1996
## [15] 1994 1994 1995 1987 1978 1990 1995 1996 1994 1991 1992 1992 1985 1986
## [29] 1976 1996 1971 1995 1994 1995
Küsimustikule vastanud üliõpilaste keskmine sünniaeg.
## [1] 1989.5
Keskmine ülikoolis õpitud aeg:
## [1] 6.529412