I Introducerende statistik og dataanlyse med R skal
du bruge programpakken R til at lave de numeriske beregninger.
Du skal derfor
hente og installere R
på din egen computer.
Den basale R-installation er glimrende til dette kursus.
Nogle foretrækker også at installere
Rstudio
og køre R gennem denne.
Rstudio kan virke lidt uoverskuelig til at starte med, hvorfor jeg anbefaler
at holde sig til den basale installation.
Udover at lave beregninger i jeres R-installationen
kan I også afprøve nogle R-kommandoer gennem denne web-bog.I kan tænke på R som en avanceret lommeregner med en simpel (intuitiv)
syntax. R er særlig velegnet til analyse af data på grund af
en vektor- eller
array-baseret struktur.
Kør nedenstående kommando, og prøv egne små regnestykker
ved at ændre på koden. Kvadratroden af et tal udregnes som
sqrt(tal) og den naturlige logaritme
udregnes som log(tal). Tallet fås ved blot at
skrive pi.
Tal kan placeres i variable som efterfølgende kan indgå i beregninger.
Prøv at tilføje x=x+3 efter første linje i ovenstående
kodevindue. Hvad tror du, der sker ?
I kodevinduet nedenfor dannes en vektor (liste af tal) ved
brug af kommandoen . Bogstavet "c" står her for
"combine", det vil sige "binde sammen". Operationer på
vektorer foregår typisk elementvis, såsom sum af to vektorer eller
produkt af to vektorer. Funktionen sum anvendt på en vektor
giver summen af alle elementerne i vektoren. Prøv, at gætte på
resultatet af nedenstående beregning inden du trykker på
compute. Prøv selv andre beregninger med vektorer som
for eksempel 3*x og x/y.
Et element, for eksempel det andet element,
i en vektor kan findes ved at skrive
x[2]. Vektoren, der består af tallene kan
dannes med kommandoen c(3:9). Vektoren, der består af
tre 1-taller efterfulgt af fire 2-taller, kan dannes med
kommandoen rep(c(1,2),c(3,4)). Prøv igen, at gætte på
resultatet af nedenstående beregning inden du trykker på
compute.
Gæt på, hvad du tror resultatet af nedenstående beregning bliver.
Prøv i stedet 3>2. Lad x=c(1:4), og udregn
x>2, x==2 og x!=2. Prøv også at udregne
henholdsvis sum(x>2) og sum(x[x>2]).
I R resulterer et logisk udtryk i enten "TRUE" eller "FALSE".
I nogle situationer vil R opfatte "TRUE" som 1 og "FALSE" som 0,
hvorfor vi kan addere disse. Når en TRUE/FALSE variabel indgår som indeks
i en vektor, vil R lave en reduceret vektor, der kun indeholder
indgangene med værdien "TRUE".
Som det fremgår af definitionen af -værdi i afsnit
1.1, er dette
begreb baseret på sandsynligheder.
Her vil jeg lige minde jer om en
måde at forstå sandsynligheder på. Når jeg kaster en (ærlig)
mønt mange gange, forventer jeg, at frekvensen af krone vil være tæt på
Når man siger, at sandsynligheden for krone er
betyder dette, at hvis vi kaster mønten flere og flere gange, så vil frekvensen
af krone komme tættere og tættere på
Dette kan vi illustrere i R.
Prøv at køre koden. Hvad ser du ? Prøv at ændre på prob i
kaldet af sample.Funktionen sample kan bruges til på simpel vis at simulere
et kast med en terning. Kaldet
sample(4,100,replace=TRUE) simulerer 100 kast med en
firesidet terning. Resultatet er 100 tilfældige tal blandt 1,2,3,4.
Generelt bruger jeg ordet simulation, når jeg beder R
om at generere tilfældige udfald fra en fordeling.
En af styrkerne ved R er, at vi nemt kan lave figurer
af en god kvalitet.
Nedenfor kan I prøve en plotkommando for at se nogle af mulighederne
(brugen af plot er beskrevet i afsnit
R.2).
Når I har kørt ovenstående kommando, prøv da, ved at kigge på figuren,
at svare på følgende spørgsmål.
Kommandoen c(1:7) laver en vektor med tal: hvilken ?
Kommandoen rep(1,7) laver en vektor med tal: hvilken ?
Angiv farverne der fremkommer ved tilføjelsen col=c(1:7).
Angiv punktsymbolerne der fremkommer ved tilføjelsen
pch=c(1:7).
På kursushjemmesiden ligger en zip-fil med en række datasæt.
I skal hente denne fil og placere filerne med datasæt i en mappe
på jeres egen computer.
Når et datasæt ønskes indlæst, skal man enten angive stien til den mappe på
computeren, hvor datasættet ligger, eller også skal working directory
i R pege på den mappe, hvor datasættet ligger. Man kan ændre på
working directory i R ved at gå ind under Fil og vælge
Ændr mappe og derefter klikke sig frem til den ønskede
mappe. Det samme kan opnås ved at bruge kommandoen setwd(sti) og
angive sti til mappe inde i parentesen. Man kan se hvilken mappe,
der er working directory, med kommandoen getwd().For at indlæse et datasæt skal I i dette kursus bruge to forskellige
kommandoer. For en fil med en række tal uden struktur
bruges kommandoen scan("filnavn"). I disse tilfælde vil
"filnavn" have endelsen ".txt", og tallene er adskildt af
mellemrum. For strukturerede data skal I indlæse med kommandoen
read.csv("filnavn",header=TRUE,stringsAsFactors=TRUE). Det forudsættes
her, at filen indeholder data organiseret i søjler. Første række
i filen indeholder søjleoverskrifter. Hver række svarer til et
observationsnummer, og indgangene i rækken giver værdierne
svarende til de forskellige søjler for dette observationsnummer.
Dataværdierne er adskilt af komma. Disse datafiler vil altid have
endelsen ".csv". I kodevinduerne i denne web-bog er der generelt ikke adgang til filer
på en vilkårlig computer. Dog kan man hente filer fra github,
hviket gøres i kodevinduet nedenfor.
Data, der indlæses, vedrører vandføringen (cubic feet per second)
i tre åer i Washington delstaten i USA. Datafilen indeholder en
søjle med navnet på åen (site), en søjle med dato for målingen (date)
og en søjle med vandføringen (flow).
I udskriften indsættes automatisk en søjle med rækkenumre.
Første søjle i dette datasæt er
rownames, som blot indeholder nummer for observationen (og altså er identisk med
den søjle med rækkenummer, der indsættes automatisk i udskriften).
Prøv at ændre det sidste dat til
cbind(dat[,4],datflow).
Kan du forklare, hvad der sker ?
Prøv at ændre det sidste dat til
dat[dat[,2]=="Silver Creek",4].
Kan du forklare, hvad der sker ?
Data er indlæst i dat, som er organiseret i søjler. Den
fjerde søjle kan enten hentes som dat[,4] eller som
datflow, idet flow er søjleoverskriften.
De to (identiske) søjler dat[,4] og
datflow
organiseres i en matriks med kommandoen cbind, der binder
vektorer sammen som søjler i en matriks.
Kommandoen dat[,4] giver hele fjerde søjle i dat.
Når der indsættes en sandhedsvektor på den tomme første indeksplads,
får vi udvalgt de elementer, hvor sandhedsvektoren er sand.
Nogle få gange i dette kursus vil jeg bede jer om at lave nogle
beregninger, der ikke laves nemt med standardfunktioner i
R. Til dette har jeg lavet nogle nye funktioner, der
alle er defineret i filen Rfunktioner.txt, som findes på
kursushjemmesiden (i zip-filen sammen med datasæt). Denne fil skal placeres i jeres
working directory, og funktionerne er til rådighed, når I
har givet kommandoen source("Rfunktioner.txt").
Filen Rfunktioner.txt indeholder følgende funktioner:
errorbar
inversReg
additivitetsPlot
forward
cvForward
I nedenstående kodevindue viser jeg koden for errorbar
og et eksempel på brug af koden. Funktionen errorbar
tager som input fire vektorer af samme længde, de første to
angiver første- og andenkoordinaten for en række punkter,
og de to sidste angiver nedre og øvre endepunkter for
lodrette linjestykker gennem punkterne.