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:
kvanthum2024
/materjalid
/praktikum1.html
/praktikum1.Rmd
/praktikum2.html
/praktikum2.Rmd
/...
/andmestikud
/ykstekst.txt
/tabel12345.csv
/andmed.RData
/...
/skriptid
/praktikum1_skript.R
/praktikum2_skript.R
/...
/kodutööd
/kodutöö1
/kodutoo1.Rmd
/kodutoo1.html
/kodutoo1_Perekonnanimi.Rmd
/kodutoo1_Perekonnanimi.html
/kodutoo1_tagasiside.txt
/...
/kodutöö2
/kodutöö3
/lõpuprojekt
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)
Selle kursuse aluseks on põhiliselt õpikud
Õpikuid ja ülevaateid humanitaar- ja sotsiaalteaduste meetodite kohta aga ilmub üha enam. Springeri kirjastusel näiteks on terve sari Quantitative Methods in the Humanities and Social Sciences, mille alt on hetkeseisuga ilmunud juba tervelt 21 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.
R-iga seotud uudistega, pakettide ning funktsioonidega kursis olemiseks tasub silma peal hoida leheküljel R-Bloggers.
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.3.2 ja RStudio 2023.12.1).
Tools -> Global Options -> Pane Layout
Tools -> Global Options -> Appearance
Tools -> Global Options -> Code -> Editing -> Soft-wrap R source files
Tools -> Global Options -> Code -> Saving -> Default text encoding: UTF-8
getwd()
setwd()
või
Session -> Set Working Directory -> Choose Directory
Tools -> Global Options -> General -> Default working directory
Tools -> Global Options -> General -> Workspace
(eemalda linnuke)install.packages("paketinimi")
library(paketinimi)
update.packages()
Ctrl+Up/Down
(Windows), Cmd+Up/Down
(Mac)sessionInfo()
?funktsiooninimi
Ctrl+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)Tab
Ctrl+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.
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
.
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.
kvanthum2024
). Seda võib teha kas konsoolis käsuga
setwd()
, ülamenüüs Session
->
Set Working Directory
->
Choose Directory...
või paneelil
File, Plots, Packages, Help...
.File
-> New File
-> R Script
), kuhu sisestame alloleva koodijupi. Loodud
funktsioon võtab kasutajalt sisendi ning teeb kõikide sisestatud sõnade
esitähed suureks.suured <- function(){
sisend <- readline(prompt = "Sisesta sõnad: ")
sonad <- unlist(strsplit(sisend, split = " "))
paste(toupper(substring(sonad, 1, 1)),
tolower(substring(sonad, 2)),
sep = "", collapse = " ")
}
kvanthum2024/skriptid
) nimega praktikum1_skript.R.
Paneme skriptifaili kinni.source("skriptid/praktikum1_skript.R")
ning seejärel
suured()
. Vaatame, kas funktsioon annab sisestatud sõnade
esisuurtähelised vasted.Uurime ka abimaterjalidest, mida teevad funktsioonis kasutatud käsud
readline
, unlist
, strsplit
,
toupper
, substring
ja tolower
.
Kirjutame nende kasutuse kohta lühikese kommentaari iga vastava
skriptirea ette.
Teeme joonise R-i pakettide arvust läbi aastate.
# Installime vajalikud paketid
install.packages("rvest")
install.packages("tidyverse")
# 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 tekstina
Võtame ühe Exceli faili (Ott Velsberg 2022, https://avaandmed.eesti.ee/datasets/arvamuskusitlus-tehisintellekti-laiema-kasutuse-kohta-(12.202104.2022)),
salvestame selle kursuse andmestike kausta (nt
kvanthum2024/andmestikud
), impordime selle RStudiosse ning
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
paketid2 <- c("readxl", "gtsummary", "esquisse")
sapply(paketid2, function(pakett) if(!pakett %in% installed.packages()) install.packages(pakett))
# Laadime vajalikud paketid
library(readxl)
library(gtsummary)
library(esquisse)
# Loeme sisse Exceli andmestiku
andmestik <- readxl::read_excel("andmestikud/Andmestik.xlsx")
# Vaatame tunnuste ülevaadet
tbl_summary(andmestik)
# Vaatame tunnuste ülevaadet vastavalt soole
tbl_summary(andmestik, by = Sugu)
# 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.