Selleks, et mõne nädala pärast kursuse materjalid pilla-palla kõiksugu salajastes kohtades laiali ei oleks ning et andmestike sisselugemine, jooniste salvestamine jms oleks võimalikult hõlbus, võiks kasutada selget kaustade ja failide struktuuri. Näiteks midagi sellist:
kvanthum2026
/materjalid
/praktikum1.html
/praktikum1.Rmd
/praktikum2.html
/praktikum2.Rmd
/...
/data
/ykstekst.txt
/tabel12345.csv
/andmed.RData
/...
/skriptid
/praktikum1_skript.R
/praktikum2_skript.R
/...
/joonised
/joonis1.png
/joonis2.png
/kodutööd
/kodutöö1
/kodutoo1.Rmd
/kodutoo1.html
/kodutoo1_Perekonnanimi.Rmd
/kodutoo1_Perekonnanimi.html
/kodutoo1_tagasiside.txt
/...
/kodutöö2
/kodutöö3
/lõpuprojekt
Selle kursuse aluseks on olnud põhiliselt õpikud
Õpikuid ja ülevaateid humanitaar- ja sotsiaalteaduste meetodite kohta aga ilmub üha enam. Springeri kirjastusel näiteks on sari “Quantitative Methods in the Humanities and Social Sciences”, mille alt on hetkeseisuga ilmunud juba tervelt 25 raamatut.
Ajaloolasi võib huvitada ka näiteks Claire Lemercier & Claire Zalc (2019) “Quantitative Methods in the Humanities: An Introduction” ja Charles H. Feinstein & Mark Thomas (2002) “Making History Count: A Primer in Quantitative Methods for Historians”.
Eestikeelseid andmeteaduse ja statistika õpikuid:
Hästi lihtsalt öeldes võib andmeteks pidada teavet, mille põhjal saab teha järeldusi.
Andmeid võib koguda mõõtmise, vaatluse, päringute või analüüsi teel. Tüüpilised andmete saamise viisid on:
Andmeid võib jagada
Sellel kursusel tegeleme põhiliselt küsitluste ja andmebaaside struktureeritud andmetega, mida hoitakse tabelkujul ning mille ridades olevaid vaatlusi/andmepunkte (ingl observation) iseloomustatakse teatud tulpades asuvate tunnuste (ingl variable) abil. Tabeli lahtrites omakorda on iga vaatluse iga tunnuse väärtus (ingl value).
Wickham, Çetinkaya-Rundel, Grolemund (2023). R for Data Science (2e)
Näiteks võime iseloomustada inimesi nende pikkuse, kaalu, silmavärvi, hariduse jpm tunnuste põhjal. Sõnu jällegi võib iseloomustada nende graafilise pikkuse, silpide arvu, välte, tähendusklassi, sõnaliigi, sageduse jms tunnuste põhjal.
Milliste tunnuste põhjal võiks iseloomustada luuletusi, ohvrikive, fotosid?
Tunnused/muutujad aitavad niisiis andmeid kirjeldada
ja jagunevad uuritavateks/sõltuvateks tunnusteks (see,
mida uurime ja mille kohta tahame midagi väita) ja
seletavateks/sõltumatuteks tunnusteks (need, mille
kaudu uuritavat tunnust iseloomustame). Inglise keeles viidatakse neile
sageli vastavalt kui dependent variable / response
(variable) / outcome (variable) ja independent
variable / predictor (variable) / explanatory
variable.
Näiteks võime uuritava tunnusena käsitleda inimese kaalu ning
seletavate tunnustena inimese pikkust, füüsilist aktiivsust (nt
minutites nädalas), unetundide arvu jms. Sõnade puhul võib meil olla
näiteks hüpotees, et sagedasemad sõnad on lühemad, mispuhul saame
uuritavaks tunnuseks võtta sõna pikkuse ja seletavaks tunnuseks sõna
sageduse. Kas võiks ka vastupidi?
Mis on järgmistes näidetes uuritav ja mis seletav tunnus?
Kui räägime kursuse kontekstis kvantitatiivsest andmeanalüüsist, siis
Kvantitatiivsete meetodite kasutamine ei asenda
kvalitatiivset analüüsi ega vastandu teooriale!
Kvantitatiivsed meetodid humanitaarteadustes?
Every softer discipline these days seems to feel inadequate unless it becomes harder, more quantifiable, more scientific, more precise. That, it seems, would confer some sort of missing legitimacy in our computerized, digitized, number-happy world. But does it really? Or is it actually undermining the very heart of each discipline that falls into the trap of data, numbers, statistics, and charts? Because here’s the truth: most of these disciplines aren’t quantifiable, scientific, or precise. They are messy and complicated. And when you try to straighten out the tangle, you may find that you lose far more than you gain.
But at the end, no matter how meticulous you’ve been, history is not a hard science. Nor is literature. Or political science. Or ethics. Or linguistics. Or psychology. Or any other number of disciplines. They don’t care about your highly involved quantitative analysis. They behave by their own rules.
_________________________________________
A common prejudice, to be sure, divides the social world into phenomena that are suitable for quantification (population distributions, social mobility, etc.) and those that are irreducibly qualitative: conversation, narratives, biography, ethnography, and history often serve as examples. Formalisms clearly can and do apply, however, to these phenomena as well. (Tilly 2004: 38)
Although history is not an exact science, counting, comparing, classifying, and modeling are nevertheless useful methods for measuring our degree of doubt or certainty, making our hypotheses explicit, and evaluating the influence of a phenomenon. (Lemercier, Zalc 2019)
Kursusel kasutame praktikumides ja kodutöödes erinevaid andmestikke (mille valik on kohati küll tugevalt keeleteaduse poole kaldu). Selleks, et käsitletud analüüsietappe ja meetodeid veelgi paremini kinnistada, julgustame kursuse algusest peale rakendama õpitut kohe ka mõnel enda valitud andmestikul (vt ka ülesanne 1).
Vaata ringi erinevates Moodle’is lingitud andmehoidlates ehk repositooriumides ning püüa leida mõni enda valdkonnaga seotud või enda jaoks muidu huvitav tabelkujul vabalt kättesaadav struktureeritud andmestik, milles vaatlused on ridades ja tunnused tulpades.
Vormingutest võiks eelistada TXT-, CSV-, TSV-, XLSX-laiendiga faile.
Salvesta andmestik kausta kvanthum2026/data.
RStudio on R-i integreeritud arenduskeskkond (IDE), mis võimaldab
mugavamalt R-iga töötada. R-i võib kasutada ka ilma RStudiota, aga
RStudiot ei saa kasutada ilma R-ita.
RStudiost on praeguseks olemas nii lokaalne, töölauaversioon, millega
meie töötame, kui ka pilvepõhine, brauseris kasutatav versioon Posit Cloud, mis sobib hästi lühemateks
kursusteks ja kollaboratiivseks tööks.
Kasutame sel kursusel R-i ja RStudio viimaseid versioone (vastavalt R 4.5.2 ja RStudio 2026.01.0), ent probleemi ei tohiks tekkida ka veidi vanemate (nt viimase aasta jooksul installitud) versioonidega.
Tools -> Global Options -> Pane LayoutTools -> Global Options -> AppearanceTools -> Global Options -> Code -> Editing -> Soft-wrap R source filesTools -> Global Options -> Code -> Saving -> Default text encoding: UTF-8getwd()setwd() või
Session -> Set Working Directory -> Choose DirectoryTools -> Global Options -> General -> Default working directoryTools -> Global Options -> General -> Workspace
(eemalda linnuke)install.packages("paketinimi")library(paketinimi)update.packages()Ctrl+Up/Down
(Windows), Cmd+Up/Down (Mac)sessionInfo()?funktsiooninimiCtrl+l (Windows + Mac)Ctrl+1 (Windows + Mac)Ctrl+2 (Windows + Mac)Alt+Up/Down (Windows),
Option+Up/Down (Mac)Alt+Shift+Up/Down
(Windows), Option+Cmd+Up/Down (Mac)Ctrl+Enter (Windows),
Cmd+Return (Mac)TabCtrl+i (Windows),
Cmd+i (Mac)OLULINE! Leia, kuidas klaviatuuril sisestada järgmisi sümboleid:
<-
~
$
^
|
[
]
{
}
Pakettide ja nende funktsioonide kohta leiab enamasti abi R-i enda abifailidest ja dokumentatsioonist (vt ka https://www.r-project.org/help.html).
Trüki RStudio konsooliaknasse:
help(paste)
help(ggplot, package = "ggplot2")
help(package = "ggplot2")
või
?paste
?ggplot2::ggplot
Kui sa ei tea täpselt, mis funktsiooni otsida, siis võid kasutada
kaht küsimärki, et otsida enda installitud pakettidest mingit
järjendit.
??pas
Paketid sisaldavad enamasti ka näiteid konkreetsetest
funktsioonidest.
example(paste)
Samuti võib otsida pakette tutvustavaid näiteid koos seletava
tekstiga.
browseVignettes(package = "ggplot2")
Kõiksugu praktikas ettetulevate probleemide korral aitab kõige paremini mõistagi guugeldamine, mis viib sageli lehele Stackoverflow.
Abi võib küsida põhimõtteliselt ka suurtelt keelemudelitelt
(Large Language Models ehk LLM), nagu ChatGPT, Copilot, Claude,
Llama jm. Muu hulgas on võimalik suuri keelemudeleid kasutada RStudios,
näiteks paketiga gptstudio
(ja seda täiendava paketiga gpttools),
RTutor või
chattr.
Võib kasutada ka laiema funktsionaalsusega ja uuemaid mudeleid kasutada
võimaldavaid pakette ellmer või
gander.
Suuri keelemudeleid saab RStudios kasutada APIde kaudu ning selleks on vaja esmalt luua vastavat keelemudelit pakkuvas keskkonnas uus API võti (API key) ning seadistada see RStudios. Keelemudelite kasutamine APIde kaudu võib olla tasuline.
Teeme joonise R-i pakettide arvust läbi aastate. Selleks kopeerime allolevas plokis oleva koodi RStudio skriptiaknasse ning jooksutame käske kas ükshaaval või korraga.
# Installime vajalikud paketid
install.packages(setdiff(c("rvest", "tidyverse"), rownames(installed.packages())))
# Laadime vajalikud paketid
library(rvest)
library(tidyverse)
# Laadime alla andmestiku
url <- "https://cran.r-project.org/web/packages/available_packages_by_date.html"
paketileht <- read_html(url)
paketitabel <- html_table(paketileht)[[1]]
# Teeme joonise
paketitabel %>%
mutate(aasta = format.Date(Date, "%Y")) %>% # teeme kuupäevast aasta
count(aasta) %>% # loeme kokku igal aastal lisandunud paketid
mutate(n = cumsum(n)) %>% # liidame igale aastale eelmiste aastate arvud
ggplot(aes(x = aasta, y = n)) + # teeme ggploti joonise
geom_col() + # tulpdiagrammina
geom_text(aes(label = n), vjust = -0.2) # lisame ka arvud tekstinaSalvestame skriptifaili kursuse skriptide kausta (File
-> Save As) ning joonis jooniste kausta
(failide-jooniste-pakettide paneelil Plots ->
Export -> Save as Image).
Määrame RStudios enda kodukataloogiks kursuse kausta (nt
kvanthum2026). Seda võib teha kas konsoolis käsuga
setwd(), ülamenüüs Session ->
Set Working Directory ->
Choose Directory... või paneelil
File, Plots, Packages, Help....
Püüame lugeda RStudiosse enda leitud andmestiku, andes sellele
RStudios nime andmestik (andmestik <- ...).
Kõige hõlpsam on seda teha, kasutades RStudio Environment
jaotises (vaikimisi parem ülemine jaotis)
Import Dataset tööriista. Samuti võib
andmete sisselugemiseks kasutada erinevaid
read käske (nt allpool), milles võib saada
täpsustada näiteks, kas andmestikul on päiserida (header),
mis sümbol eraldab tabeli välju/tulpasid (sep) ning mis on
andmestiku kodeering (encoding).
# CSV-failid
andmestik <- read.table("data/andmestik.csv", header = TRUE, sep = "\t", encoding = "UTF-8")
andmestik <- read.delim("data/andmestik.csv", encoding = "UTF-8")
andmestik <- read.csv("data/andmestik.csv", sep = "\t", encoding = "UTF-8")
andmestik <- read.csv2("data/andmestik.csv", sep = "\t", encoding = "UTF-8")
# Exceli failid
install.packages("readxl")
library(readxl)
andmestik <- read_excel("data/andmestik.xlsx")
# SPSSi, SASi, STATA failid
install.packages("haven")
library(haven)
andmestik <- read_sav("data/andmestik.sav") # SPSS
andmestik <- read_sas("data/andmestik.sas7bdat") # SAS
andmestik <- read_stata("data/andmestik.dta") # STATA
# JSONi failid
install.packages("jsonlite")
library(jsonlite)
andmestik <- fromJSON("data/andmestik.json")
# XMLi failid
install.packages("xml2")
library(xml2)
andmestik <- as.data.frame(read_xml("data/andmestik.xml"))Veel üks hõlbus viis andmeid R-i lugeda on teha kogu andmefaili sisu
aktiivseks, kopeerida kogu andmestik (Win Ctrl+C) ning
kasutada seejärel käsku read.delim(),
mille sulgude sees ütleb “clipboard”, et andmed
loetakse lõikepuhvrist, ning argumendiga sep tuleb öelda,
mis sümbolit kasutatakse väljade/tulpade eraldamiseks (nt kas koma
,, tabeldusklavhi ehk tabulaatorit \t,
semikoolonit ;, tühikut vm-d). Selline
andmestiku R-i lugemine ei ole aga väga hästi korratav, kuna sel juhul
ei jää skripti ega koodilogidesse jälge sellest, millist faili on sisse
loetud.
andmestik <- read.delim("clipboard", sep = ",") # loeme lõikepuhvrist tabeli, milles tulpasid eraldab komaKui sul ei õnnestunud praegu ühtki sobivat andmestikku leida, siis
kasuta etteantud faili Pilot_Est_Aus.csv. Andmestikus on
andmed pilootuuringust (Põder & Tammets
2025), milles taheti teada saada, kuidas erinevad koolitussekkumised
mõjutavad Eesti ja Austria õpetajate usku oma võimesse kasutada
digivahendeid tõhusalt õppetöös. Uuring põhineb enne–pärast mõõtmisega
küsitlusel ning sisaldab enesetõhususe, koolituse kognitiivse
aktiveerivuse ja osalejate taustatunnuste mõõdikuid.
Loome kiire ülevaate andmestiku tunnustest ja nende jaotumisest.
# Installime vajalikud paketid
# Siin teeme esmalt loendi vajaminevatest pakettidest
# ning seejärel installime paketid ainult juhul, kui need ei ole veel juba installitud pakettide nimekirjas
install.packages(setdiff(c("Hmisc", "esquisse"), rownames(installed.packages())))
# Laadime vajalikud paketid
library(Hmisc)
library(esquisse)
# Vaatame tunnuste ülevaadet
describe(andmestik)
# Teeme mõne joonise
esquisser()Täida ära küsimustik, mis asub lehel https://survey.ut.ee/index.php/347927?lang=et (aega u 5 minutit).
Tee Moodle’is R-i baasoskusi puudutav test. Ära muretse, kui vastata ei oska, test ei ole hindeline ega mõjuta kuidagi lõpparvestuse saamist.
Andmetüübid ja objektitüübid.