See, et andmeanalüüs on kvantitatiivne, ei tähenda, et kõik andmed ise peaksid tingimata olema arvulised. Laiemalt jagunevadki tunnused kvalitatiivseteks ja kvantitatiivseteks.
Eri skaalal tunnused võimaldavad erineval hulgal tehteid.
Tunnuseid on võimalik teisendada ühest klassist teise, ent
ainult suunal suhteskaala -> nominaalskaala ehk ratio ->
nominal!
Näiteks sõnasagedus on intervalliskaala tunnus, aga võime sõnad jagada
ka klassidesse harvad, keskmise sagedusega ja
sagedased, mispuhul on tegemist järjestusskaala tunnusega.
Vastupidi ei ole aga võimalik tunnuseid teisendada.
Küsitluses, millele vastasid, olid järgmised küsimused. Millised neist on kvalitatiivsed ja millised kvantitatiivsed? Millisel skaalal tunnused on?
##
## Q2 "Mis on sinu sünniaasta?"
## Q3 "Millisel õppekaval õpid?"
## Q4 "Mitu aastat oled käinud ülikoolis?"
## Q5 "Kas sul on varasemaid kogemusi kvantitatiivsete meetoditega? "
## Q6 "Kirjelda oma programmeerimisoskusi (ükskõik mis keeles)"
## Q7 "Kui tõenäoline on, et läbid selle kursuse?"
## Q8 "Kohv või tee?"
## Q9 "Hinda oma söögitegemisoskusi"
## Q10 "Vali loom"
Saame R-is töötada erinevat tüüpi andmetega. Suhte- ja intervallskaala väärtused on tüüpiliselt arvud, nominaal- ja järjestusskaala väärtused on tüüpiliselt tekst. Viimaseid tuleb R-is kirjutada jutumärkide vahele.
## [1] 68
## [1] 2.464695
## [1] "kass"
## [1] "kass ja koer"
Võime toimetada R-is niisiis küll ka konkreetsete arvude või
tekstijärjenditega, aga enamasti tekib meil vajadus neid väärtusi või
erinevate tehete tulemusi hilisemaks kasutamiseks talletada.
Objektiks võimegi nimetada elementi, mis
talletab mingit tüüpi andmeid (teksti/tekste, arve,
tabeleid, maatrikseid jne). Objektile saab väärtusi omistada kas
võrdusmärgiga = või noolekesega <-. Sellel
kursusel eelistame noolekest, et selgemalt eristada objektidele ja
funktsiooni argumentidele väärtuste omistamist.
## Error in 68 <- b: invalid (do_set) left-hand side to assignment
Kui omistame mingile objektile väärtuse, ilmub objekt R-i keskkonda (Environment paneeli), aga väärtust konsooli ei trükita. Konsooli trükkimiseks saab kasutada nüüd lihtsalt objekti nime.
## [1] 23.52941
Objektide kasutamine teeb esiteks meie koodi paremini loetavaks, kuna objektidele saab anda tähenduslikke nimesid. Piiranguks nimetamisel on vaid see, et objekti nimi ei tohi alata numbriga ega tohi sisaldada tühikuid ega kirjavahemärke peale alakriipsu ja punkti.
pikkus_m <- 1.7 # loome objekti, mille väärtus on 1.7
kaal_kg <- 68 # loome objekti, mille väärtus on 68
KMI <- kaal_kg/(pikkus_m ^ 2) # loome objekti, mille väärtus on objekti 'kaal_kg' väärtus jagatud objekti 'pikkus_m' väärtuse ruuduga
KMI # trükime objekti 'KMI' väärtuse konsooli## [1] 23.52941
Teiseks saab üht ja sama objekti koodis korduvalt kasutada ja selle väärtusi (nt vastavalt kasutaja sisendile) muuta. Sellest saab paremini aru, kui hakkame andmetabelitega tegelema.
Igat objekti iseloomustavad tüüp ja klass.
Objektitüüp (vahel nimetatakse ka andmetüübiks) ütlebki meile seda, mis sorti andmetega on tegemist. Põhilised objektitüübid on R-is niisiis
123.456 või 1234"Tere!", "Number 2",
"123.456"TRUE ja FALSE
Arvud (numeric), nagu oleme juba näinud, kirjutatakse lihtsalt numbritega. Arvulise väärtusega muutujatega saab teha matemaatilisi tehteid (liita-lahutada jne).
## [1] 4
arv1 <- 4 # objektile 'arv1' omistatakse väärtus 4, aga midagi välja ei trükita
arv2 <- 5
arv3 <- sqrt((arv1 + arv2)^3) # ^-märk tähistab siin astendamist, sqrt() on ruutjuure leidmise funktsioon
arv3 # see trükitakse välja## [1] 27
Arvud võivad omakorda jaguneda täisarvudeks (integer) ja
murdarvudeks/ujukomaarvudeks (double). Murdarvus
kasutatakse R-is vaikimisi koma asemel punkti (nt 2.7,
mitte 2,7)!
Tekst (character) tuleb kirjutada jutumärkides (kas ühe- või kahekordsetes). Ka numbreid võib esitada tekstina. Tekstiga matemaatilisi tehteid teha ei saa, küll aga saab eri funktsioonide abil näiteks tekstiosi omavahel kombineerida või tekstijada (ingl string) pikkust pärida.
## [1] "Tartu"
pärisnimi <- "Tartu" # objektile 'pärisnimi' omistatakse väärtus "Tartu", aga midagi välja ei trükita
üldnimi <- 'ülikool' # ühekordsed jutumärgid töötavad samaväärselt
arv <- "394" # objektile 'arv' omistatakse tekstiväärtus "394"
paste(pärisnimi, üldnimi, arv, sep= " ") # kleebime kolme objekti väärtused kokku (paste = kleebi)## [1] "Tartu ülikool 394"
## [1] 7
## [1] "kool"
## Error in pärisnimi + üldnimi: non-numeric argument to binary operator
## Error in arv^2: non-numeric argument to binary operator
Küsimus R-i testist
Tõeväärtus (logical) on binaarne muutuja, millel on kaks võimalikku väärtust: TRUE ja FALSE, need sisestatakse suurtäheliselt ilma jutumärkideta, töötab ka ainult esitähega T/F.
Milleks tõeväärtusi vaja on?
Tõeväärtused saame vastuseks, kui testime, kas mingi tingimus on
täidetud. Tingimuste kontrolli läheb meil vaja siis, kui meil on näiteks
suuremast andmestikust vaja leida kindlatele tunnustele vastav alamosa
(näiteks võtta tabelist välja ainult read, kus tulbas Sugu
on väärtus mees, või read, kus tulbas Vanus on
suurem väärtus kui 50). Tõeväärtustega saab ka matemaatilisi tehteid
teha.
üks <- 1 # objektile 'üks' omistatakse väärtus 1, midagi välja ei trükita
kaks <- 2
üks > kaks # Kas objekti 'üks' väärtus on suurem kui objekti 'kaks' väärtus?## [1] FALSE
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] 1
## [1] 400
Lisaks on R-is oluline tundmatu väärtus ehk NA (not applicable, not available, no answer). Kõigi objektitüüpide hulgas võib olla tundmatuid väärtusi, näiteks kui me ei tea kõikide oma andmestiku katseisikute vanuseid, mõni mõõtmistulemus on läinud untsu või mõni kategooria pole üldse kõikide vaatluste puhul relevantne. Tundmatu väärtusega tehteid tehes on tulemuseks samuti tundmatu väärtus.
## [1] NA
## [1] TRUE
Objektide tüüpi saab küsida käsuga
mode() või
class().
## [1] "numeric"
## [1] "numeric"
## [1] "character"
## [1] "character"
## [1] "logical"
## [1] "logical"
Samuti võib küsida, kas objekt on mingit konkreetset tüüpi.
## [1] TRUE
## [1] TRUE
## [1] TRUE
Vahel kodeeritakse andmestikes tundmatud väärtused mingi kindla
väärtuse abil, nt -99, . vmt. Sel juhul ei tea
R vaikimisi, et tegemist on erilise väärtusega, ning seda tuleb andmeid
sisse lugedes talle eraldi öelda.
Loo üks objekt nimi, millele omistad väärtuseks oma
eesnime, teine objekt vanus, millele omistad väärtuseks oma
vanuse, ning kolmas objekt hinnang, mis võib saada
väärtuseks ainult kas sõna juba või sõna alles.
Jooksuta seejärel allolevat paste() käsku, et lasta R-il
sind sobivalt tutvustada.
Objektiklass tähistab andmestruktuuri ehk seda, kuidas andmed objektis on korrastatud. Objektiklasse on küll ka rohkem ja spetsiifilisemaid, aga esialgu võiks meil tulla tegemist 4 põhilise klassiga:
1, 1:10, c(1:10),
c(1,400,800), "Tere!",
c("Tere!", "Head aega!"), TRUE,
c(TRUE, FALSE, TRUE, TRUE),
vector("character", length = 10)list(1:10), list(1:10, 10:5),
list(1:10, "a", list(c(TRUE, FALSE), TRUE))matrix(1:9), matrix(1:9, nrow = 3),
matrix(c(TRUE, TRUE, FALSE, FALSE), ncol = 2)data.frame(nimi = c("Anu", "Mart", "Sipsik"), pikkus = c(145, 160, 30), kaal = c(40, 58, 2)),
as.data.frame(matrix(1:9, nrow = 3))VEKTORID on ühemõõtmelised objektid, mis võivad
sisaldada ainult üht tüüpi elemente, nt ainult arve,
ainult teksti või ainult tõeväärtuseid.
MAATRIKSID on kahemõõtmelised (= ridade ja tulpadega)
objektid, mis võivad sisaldada ainult üht tüüpi
elemente, nt ainult arve, ainult teksti või ainult tõeväärtuseid.
TABELID on kahemõõtmelised objektid, mis võivad
veergudes sisaldada erinevat tüüpi elemente (nt
tekstivektoreid, arvuvektoreid, tõeväärtusvektoreid).
LISTID on komplekssed, struktureerimata objektid, mis
võivad sisaldada erinevat tüüpi elemente, sh tabeleid
ja teisi liste, funktsioone jm.
R-i objektiklassid (https://web.itu.edu.tr/~tokerem/r_language.html)
Kõige rohkem pöörame sellel kursusel tähelepanu just vektoritele ja
tabelitele. Tabelite (ja maatriksite) puhul on oluline ära märkida, et
R-is peaks tabel olema kindlasti sümmeetriline, st igas
reas on ühepalju tulpasid ja igas tulbas ühepalju ridu (nn tidy
andmestruktuur). Selline Exceli-tüüpi tabel, kus ühe ruudulise lehe peal
võib olla mitu tabelit, on R-ile raskesti seeditav. Ka erinevad
stiliseeritud ja pesastatud tabelid, kus ühes lahtris toimub omakorda
jagunemine väiksemateks lahtriteks, võivad tekitada omajagu tüli (vt ka
nt https://www.r-bloggers.com/2020/05/what-it-takes-to-tidy-census-data/).
Keerulisema struktuuriga objektidega, nagu on R-is list, me täna ei
tegele, aga näeme neid rohkem siis, kui hakkame mudelite väljundeid
vaatama.
R-i põhiline objektiklass on vektor. Kõik teised objektid koosnevad vektoritest, st nende osi saab käsitleda vektoritena.
Vektor on ühemõõtmeline objekt, millel võib olla üks või enam üht tüüpi väärtust. Kõige lihtsam vektor koosnebki ainult ühest elemendist, st tal on üks väärtus. Näiteks kui sisestada üks arv või üks sõna, siis see on vektor, millel on üks element.
## [1] 4
## [1] 1
Vektoris võib olla ka rohkem kui üks väärtus. Funktsioon
c() (concatenate) kombineerib
üksikud väärtused kokku vektoriks (erinevate väärtuste loendiks).
Järjestikuste arvude jada saab luua ka kooloniga.
Kui mõelda pisut etteruttavalt andmetabelite peale, siis põhimõtteliselt iga andmetabeli tulp, mis sisaldab üksikute vaatluste konkreetse tunnuse väärtusi (nt vanuseid), on sisuliselt üks vektor.
Proovi nüüd loodud vektorite peal funktsiooni
length(), mis ütleb, mitu väärtust vektoris
on.
Ühes vektoris on kõik elemendid sama tüüpi (nt
ainult arvud, ainult tekst, ainult loogilised väärtused). Vektori tüüpi
saab jällegi küsida käsuga mode() või
class().
## [1] "numeric"
Kui püüda samasse vektorisse kokku panna eri tüüpe elemente, siis arvude ja loogiliste väärtuste kombineerimisel teisendatakse loogilised väärtused arvudeks (0 või 1), nende kombineerimisel tekstiga omakorda teisendatakse kõik elemendid tekstiks.
Küsimused R-i testist
Käsk c() võib omavahel kokku kombineerida mitte ainult
mitu üksikut väärtust, vaid ka mitu mitmest elemendist koosnevat
vektorit.
## [1] 3 6 8 11 24 1 2 3 4 5 20 21 22 23 24 25 26 27 28 29 30
## [1] 21
Vektoritega tehete tegemisel rakendatakse tehet (nt liitmine) elementide kaupa. Kui vektorid on eri pikkusega, siis lühemat vektorit taaskasutatakse.
## [1] 4 8 11 15 29
## [1] 3 0 9 0 15 0 21 0 27 0
Ja kui pikem vektor ei jagu täpselt lühemaga, siis lühemat küll 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 hoiatus.
## 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
Vektorist saab üksiku väärtuse või mingi osa kätte indeksite abil. Indeksid on tegelikult ise ka vektorid. Indeks kirjutatakse vektori nime järele nurksulgudesse:
tekstivektor2 <- c("kala", "kana", "kaja", "kava", "kaba", "kada", "kaka", "kaua", "kama")
tekstivektor2[3] # vektori kolmas element## [1] "kaja"
## [1] "kana" "kaja" "kava"
## [1] "kaba" "kala"
Küsimus R-i testist
Omamoodi indeksitena saab kasutada ka võrratusi, mispuhul indeksitena kasutatav vektor on tõeväärtuste vektor.
## [1] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
tekstivektor2[tekstivektor2 == "kana"] # küsi vektorist ainult neid elemente, mis võrduvad sõnaga "kana"## [1] "kana"
## [1] FALSE FALSE FALSE TRUE TRUE
## [1] 11 24
Vektori eritüüp on faktor. Faktor (factor) on piiratud hulga väärtustega nominaalne vektor.
Miks faktoreid vaja on?
1) faktori väärtuseid saab järjestada, see on oluline näiteks
järjestusskaalaga muutujate puhul (“vana” > “keskealine” >
“noor”);
2) on arvutuslikult ökonoomsem, sest ehkki faktori taseme
(level) nimi võib koosneda mitmest tähemärgist (nt
noor, keskealine), on iga tase/klass tegelikult
kodeeritud unikaalse arvuga (nt 1, 2).
Faktori tasemed märgivad faktori unikaalseid väärtusi. Faktori
tasemed on alati mingil moel järjestatud, ent vaikimisi tähestiku
järjekorras või arvude puhul väiksemast suuremani. Faktori tasemeid saab
küsida käsuga levels().
haridus <- factor(c("põhi", "kesk", "põhi", "kesk", "kõrg"))
arvud <- factor(c(9,3,6,2,1,1,2,2))
levels(haridus)## [1] "kesk" "kõrg" "põhi"
## [1] "1" "2" "3" "6" "9"
Küsimus R-i testist
Faktoreid saab ümber järjestada näiteks
factor()-funktsioonis argumendi levels
abil.
haridus <- factor(haridus, levels = c("põhi", "kesk", "kõrg"))
arvud <- factor(arvud, levels = c(9,6,3,2,1))
levels(haridus)## [1] "põhi" "kesk" "kõrg"
## [1] "9" "6" "3" "2" "1"
Kui vektorite puhul annavad käsud mode() ja
class() sama väljundi, siis keerukamate andmestruktuuride
puhul näeme nende kasutuses juba erinevusi. Näiteks faktorite puhul
ütleb class() seda, milline on andmestruktuur,
mode() aga seda, mis tüüpi andmetest see struktuur
koosneb.
## [1] "factor"
## [1] "numeric"
Eraldi faktori liik on järjestatud faktor (ordered factor), mille puhul on eksplitsiitne ka see, et iga järgmine faktori tase on eelmisest suurem/kõrgem/rohkem/tähtsam.
## [1] põhi kesk põhi kesk kõrg
## Levels: põhi < kesk < kõrg
## [1] "ordered" "factor"
## [1] "numeric"
Tabel on kahemõõtmeline objekt: on read ja veerud, aga oluline on see, et igas reas on sama palju veerge ja vastupidi, ehkki lahtrites võib olla ka puuduvaid väärtusi.
Siin kursusel kasutame kõige rohkem tabeleid, mille klass on data.frame, mingites olukordades ka maatriksit (matrix). Maatriksi ja data.frame’i vahe R-is on see, et maatriksis saab olla ainult ühte tüüpi andmeid (nt ainult arvud), aga data.frame’is võib iga tulp olla erinevat tüüpi.
matrix(20:28, # arvud, mis tabelisse lähevad
ncol = 3, # tulpade arv, millesse arvud jagatakse
dimnames = list(c("1", "2", "3"), # reanimed
c("Arvud1", "Arvud2", "Arvud3"))) # tulbanimed## Arvud1 Arvud2 Arvud3
## 1 20 23 26
## 2 21 24 27
## 3 22 25 28
data.frame(Arvud = c(20,21,22), # esimese tulba nimi ja väärtused
Tekst = c("a", "b", "c"), # teise tulba nimi ja väärtused
Tõeväärtused = c(TRUE, FALSE, FALSE)) # kolmanda tulba nimi ja väärtused## Arvud Tekst Tõeväärtused
## 1 20 a TRUE
## 2 21 b FALSE
## 3 22 c FALSE
Nagu näeme, saab R-is andmeid ka vektoritest
data.frame() käsuga tabeliks kokku panna, aga üldjuhul
saame data.frame’i kujulise objekti nii, et loeme tabelina
struktureeritud andmeid mingist failist.
Kui andmestik on R-is korrastatud ja RData formaadis
salvestatud, siis neid andmestikke saab avada käsuga
load(). Näiteks sellisel kujul on
Moodle’is failis kysimustik_2026.RData korrastatud vastused
küsimustikule, mida eelmises praktikumis täitsite. Lisaks on seal ka
varasemate aastate vastused. Laadige RData andmestik alla ja pange see
oma kursuse andmestike kausta (nt kausta nimega
andmestikud, andmed, data vmt),
muutke vastavalt ära ka faili teekonna nimi (nt
andmestikud/kysimustik_2026.RData,
andmed/kysimustik_2026.RData,
data/kysimustik_2026.RData).
Selle käsurea rakendamisest justkui ei juhtugi midagi, aga töölauale
tekkis objekt nimega kysimustik, mille klassiks on
data.frame.
## [1] "data.frame"
Nüüd oleks vaja saada natuke aimu, mida see tabel endast kujutab. Selleks proovime käske/funktsioone:
dim()View()head()tail()summary()str()dim(kysimustik) # mitu rida ja mitu tulpa on tabelis?
View(kysimustik) # vaata tervet andmetabelit
head(kysimustik) # näita tabeli esimesi ridu
tail(kysimustik) # näita tabeli viimaseid ridu
summary(kysimustik) # näita ülevaadet tabeli tunnustest
str(kysimustik) # näita tabeli struktuuriKui andmetabel ei ole RData-formaadis (enamasti ei ole), saab selle
sisselugemiseks kasutada paljusid muid funktsioone, mis algavad üldjuhul
sõnaga read.
csv- või txt-formaadis tabeleid
saab lugeda näiteks järgmiste käskudega, mis erinevad põhiliselt selle
poolest, millised on erinevate argumentide (nt header,
sep) vaikeväärtused:
kysimustik_csv <- read.table("data/kysimustik_2026.csv", header = TRUE, sep = "\t", encoding = "UTF-8")
kysimustik_csv <- read.delim("data/kysimustik_2026.csv", encoding = "UTF-8")
kysimustik_csv <- read.csv("data/kysimustik_2026.csv", sep = "\t", encoding = "UTF-8")
kysimustik_csv <- read.csv2("data/kysimustik_2026.csv", sep = "\t", encoding = "UTF-8")Failil kysimustik_2026.csv on tulbanimedega päis
(header), tulpasid eraldavad tabulaatorid (\t)
ning faili kodeering on UTF-8. Kuna funktsioonide vaikeväärtused on
erinevad (näiteks read.table() eeldab vaikimisi, et tabelil
ei ole tulbanimesid), peame eri funktsioonidega andmeid sisse lugedes
täpsustama erinevaid asju, vastavalt oma andmestiku struktuurile.
Küsimused R-i testist
R-i saab erinevate pakettide abil laadida ka muus formaadis faile, näiteks Exceli, SPSSi, SASi, STATA, JSONi või XMLi faile.
# Exceli failid
# install.packages("readxl")
library(readxl)
kysimustik_xlsx <- read_excel("data/kysimustik_2026.xlsx")# SPSSi, SASi, STATA failid
# install.packages("haven")
library(haven)
kysimustik_sav <- read_sav("data/kysimustik_2026.sav") # SPSS
kysimustik_sas7bdat <- read_sas("data/kysimustik_2026.sas7bdat") # SAS
kysimustik_dta <- read_stata("data/kysimustik_2026.dta") # STATA# JSONi fail
# install.packages("jsonlite")
library(jsonlite)
kysimustik_json <- fromJSON("data/kysimustik_2026.json")# XMLi fail
# install.packages("xml2")
library(xml2)
kysimustik_xml <- as.data.frame(read_xml("data/kysimustik_2026.xml"))Tabelist saab selle osi pärida samamoodi indeksite abil nagu
vektorist, aga nüüd peab arvestama, et nurksulgudes tuleb märkida
nii ridade kui ka veergude indeksid.
Ridade indekseid täpsustame kantsulgude sees enne koma ja
tulpade indekseid pärast koma.
kysimustik[1,] # küsimustiku 1. rida
kysimustik[c(1,3,5,7),] # küsimustiku 1., 3., 5. ja 7. rida
kysimustik[,5] # küsimustiku 5. tulp
kysimustik[,1:2] # küsimustiku 1. ja 2. tulp
kysimustik[3, 5] # küsimustiku 3. rea 5. tulba väärtus
kysimustik[1:10, 5] # küsimustiku esimese 10 rea 5. tulba väärtusedKui me tahame tabelist tulbanime järgi välja võtta ühe terve tulba, siis seda saab ka nii:
## [1] Kohv Kohv Kohv Kohv Kohv Kohv Tee Tee Kohv Kohv Tee Tee Tee Tee Tee
## [16] Tee Kohv Tee Tee Kohv Tee Kohv Kohv Tee Kohv Tee Kohv Tee Tee Tee
## [31] Tee Tee Kohv Tee Kohv Tee Kohv Tee Kohv Kohv Kohv Tee Kohv Kohv Tee
## [46] Tee Kohv Kohv Kohv Kohv Tee Tee Kohv Tee Kohv Kohv Kohv Tee Kohv Kohv
## [61] Kohv Kohv Tee Tee Kohv Kohv Tee Kohv Kohv Kohv Kohv Kohv Kohv Tee Kohv
## [76] Kohv Kohv Kohv Kohv Kohv Tee Kohv Tee Kohv Kohv Tee Kohv Kohv Tee Kohv
## [91] Kohv Tee Tee Tee Kohv Tee Kohv Kohv Tee Kohv Tee Kohv Tee Kohv Kohv
## [106] Kohv Kohv Kohv Tee Kohv Tee Tee Kohv Tee Kohv Tee Tee Kohv Tee Kohv
## [121] Tee Tee Kohv Kohv Tee Tee Tee Kohv Kohv Tee Tee Kohv Tee Kohv Kohv
## [136] Tee Kohv Kohv Kohv Tee Tee Kohv Kohv Kohv Tee Tee Tee Tee Kohv Tee
## [151] Tee
## Levels: Kohv Tee
## [1] Kohv Kohv Kohv Kohv Kohv Kohv Tee Tee Kohv Kohv Tee Tee Tee Tee Tee
## [16] Tee Kohv Tee Tee Kohv Tee Kohv Kohv Tee Kohv Tee Kohv Tee Tee Tee
## [31] Tee Tee Kohv Tee Kohv Tee Kohv Tee Kohv Kohv Kohv Tee Kohv Kohv Tee
## [46] Tee Kohv Kohv Kohv Kohv Tee Tee Kohv Tee Kohv Kohv Kohv Tee Kohv Kohv
## [61] Kohv Kohv Tee Tee Kohv Kohv Tee Kohv Kohv Kohv Kohv Kohv Kohv Tee Kohv
## [76] Kohv Kohv Kohv Kohv Kohv Tee Kohv Tee Kohv Kohv Tee Kohv Kohv Tee Kohv
## [91] Kohv Tee Tee Tee Kohv Tee Kohv Kohv Tee Kohv Tee Kohv Tee Kohv Kohv
## [106] Kohv Kohv Kohv Tee Kohv Tee Tee Kohv Tee Kohv Tee Tee Kohv Tee Kohv
## [121] Tee Tee Kohv Kohv Tee Tee Tee Kohv Kohv Tee Tee Kohv Tee Kohv Kohv
## [136] Tee Kohv Kohv Kohv Tee Tee Kohv Kohv Kohv Tee Tee Tee Tee Kohv Tee
## [151] Tee
## Levels: Kohv Tee
See üks tulp on tegelikult ka vektor. Tulba või üksikud väärtused saab suunata ka eraldi uude objekti, tulba väärtusi omakorda indeksite abil välja võtta jne.
Nii nagu vektoreid võib ka tabelitest elemente (ridu või tulpasid) välja võtta ka võrratuste abil.
## synniaasta oppekava kaua_opid kogemused_kvant
## 83 2003 inglise keel 3 Jah
## 105 2003 skandinavistika 2 Jah
## 112 2003 inglise keel 3 Jah
## 114 2003 eesti ja soome-ugri keeleteadus 2 Jah
## 117 2003 inglise keel 3 Ei
## 119 2003 romanistika 3 Jah
## 121 2003 inglise keel 3 Jah
## 123 2003 inglise keel 3 Jah
## 124 2004 romanistika 1 Ei
## 132 2003 keeleteadus 3 Jah
## 133 2003 slavistika 1 Ei
## 135 2004 slavistika 2 Ei
## 137 2004 inglise keel 3 Jah
## 138 2004 inglise keel 3 Ei
## 140 2003 keeleteadus 4 Jah
## 141 2004 ajalugu 3 Ei
## 142 2004 kirjandus 2 Ei
## 144 2003 keeleteadus 4 Jah
## 148 2004 eesti ja soome-ugri keeleteadus 3 Jah
## 150 2004 inglise keel 2 Jah
## programmeerimisoskus kursuse_labimine
## 83 Saan mingid asjad tehtud 4
## 105 Saan mingid asjad tehtud 5
## 112 Saan mingid asjad tehtud 5
## 114 Saan mingid asjad tehtud 5
## 117 Saan mingid asjad tehtud 5
## 119 Saan mingid asjad tehtud 5
## 121 Saan mingid asjad tehtud 5
## 123 Saan mingid asjad tehtud 4
## 124 Puuduvad 4
## 132 Puuduvad 4
## 133 Olen püüdnud õppida, aga külge pole palju jäänud 5
## 135 Saan mingid asjad tehtud 4
## 137 Saan mingid asjad tehtud 4
## 138 Saan mingid asjad tehtud 3
## 140 Olen püüdnud õppida, aga külge pole palju jäänud 4
## 141 Olen püüdnud õppida, aga külge pole palju jäänud 5
## 142 Saan mingid asjad tehtud 5
## 144 Saan mingid asjad tehtud 5
## 148 Saan mingid asjad tehtud 4
## 150 Saan mingid asjad tehtud 4
## lemmikjook soogitegemisoskus lemmikloom aasta
## 83 Tee 4 Koer 2024
## 105 Kohv 3 Koer 2025
## 112 Tee 4 Glaucus atlanticus 2025
## 114 Tee 3 Kaelkirjak 2025
## 117 Tee 3 Koer 2025
## 119 Tee 3 Kaelkirjak 2025
## 121 Tee 5 Koer 2025
## 123 Kohv 4 Koer 2025
## 124 Kohv 4 Koer 2025
## 132 Kohv 3 Glaucus atlanticus 2026
## 133 Tee 5 Kaelkirjak 2026
## 135 Kohv 5 Koer 2026
## 137 Kohv 5 Kaelkirjak 2026
## 138 Kohv 3 Glaucus atlanticus 2026
## 140 Tee 4 Koer 2026
## 141 Tee 4 Koer 2026
## 142 Kohv 4 Koer 2026
## 144 Kohv 5 Koer 2026
## 148 Tee 4 Glaucus atlanticus 2026
## 150 Tee 3 Glaucus atlanticus 2026
# vektor
kysimustik[kysimustik$kogemused_kvant == "Jah",]$kaua_opid # "kaua_opid" tulba väärtused ridadel, kus "kogemused_kvant" väärtus on "Jah"## [1] 10 6 5 25 9 4 6 4 5 8 12 1 4 7 8 6 15 7 10 4 16 3 5 5 13
## [26] 8 2 2 1 2 3 13 3 1 7 1 5 3 4 2 7 3 13 3 5 13 10 6 18 13
## [51] 14 1 7 8 2 3 3 3 3 8 4 3 15 7 2 3 7 3 8 4 2 3 5 8 5
## [76] 4 3 3 3 2 3 6 3 3 3 8 15 5 3 5 3 5 3 2 4 3 4 7 7 3
## [101] 3 8 2 4
kysimustik välja mõni
intervalliskaalal tunnus/tulp (kasuta arvulist indeksit).kysimustik välja sama tulp tulbanime
järgi (kasuta $-märki).kysimustik tulp
kogemused_kvant eraldi objekti nimega
kogemused. Mis tüüpi objekti saad?kogemused tasemed nii, et esimene tase
oleks “Jah” ja teine “Ei”.kogemused väärtus “Võib-olla” (kasuta
funktsiooni c()). Mis juhtub?Arvulised andmed ja nende visualiseerimine.
c() - concatenate, kombineerib üksikud
väärtused või mitmest elemendist koosnevad vektorid üheks vektoriksclass() - küsib objekti andmestruktuuri/andmetüüpidata.frame() - kombineerib üksikud vektorid või
maatriksid kokku andmetabeliksdim() - küsib kahemõõtmelise R-i objekti (maatriksi või
tabeli) ridade ja tulpade arvufactor() - teeb tavalisest vektorist piiratud hulga
väärtustega faktorihead() - kuvab R-i objekti esimesi elemente
(andmetabelis nt vaikimisi esimest 6 rida)is.character() - küsib, kas objekti andmetüüp on
tekstis.logical() - küsib, kas objekti andmetüüp on
loogiline väärtusis.numeric() - küsib, kas objekti andmetüüp on
arvlength() - küsib, mitu elementi vektoris on. Kui
kasutada data.frame’il, siis annab tabeli tulpade arvulevels() - küsib, millised on faktori tasemed ehk
unikaalsed väärtusedlist() - teeb listi või muudab olemasoleva(d)
objekti(d) listiksload() - laadib RData formaadis salvestatud
andmestikkematrix() - teeb maatriksi või muudab olemasoleva(d)
objekti(d) (nt vektori(d)) maatriksiksmode() - küsib objekti andmetüüpipaste() - kleebib üksikud väärtused või vektorid kokku
üheks tekstijadaks (string’iks)read.csv() - loeb failist (nt) txt- või csv-formaadis
andmetabeliread.csv2() - loeb failist (nt) txt- või csv-formaadis
andmetabeliread.delim() - loeb failist (nt) txt- või csv-formaadis
andmetabeliread.table() - loeb failist (nt) txt- või csv-formaadis
andmetabelisummary() - annab R-i objektist ülevaate (andmetabelite
puhul nt kõikide tunnuste/tulpade kokkuvõtted)str() - kuvab R-i objekti sisemise struktuuri ja
struktuuris kasutatavad andmetüübidtail() - kuvab R-i objekti viimaseid elemente
(andmetabelis nt vaikimisi viimast 6 rida)vector() - teeb vektoriView() - kuvab andmetabeli eraldi vaates