2.4 Relevante R-kommandoer
Under følger en liste over hvilke oppgaver du skal klare i R fra denne modulen. Vår policy fra og med vårsemesteret 2022 er at R-kommandoene under er tilstrekkelige for å løse oppgavene i datalabber og hjemmeeksamen i MET4. Det er med andre ord ikke nødvendig å lære seg teknikker utover det som er listet opp eksplisitt i listen under. Eventuelle nye teknikker som trengs for å løse en bestemt oppgave vil bli oppgitt og forklart dersom det er nødvendig. Det antas i tillegg at du kan den grunnleggende R-syntaksen som er dekket under Introduksjon til R.
Antakelser om datasett
Det antas at du har kontroll på hvilken mappesti R bruker, og at du kan forandre den dersom nødvendig.
I denne modulen kan du anta at alle datasett består av \(p\) kolonner (variabler) med variabelnavn og \(n\) rader (observasjoner). Datasettene blir gitt enten som Excel-filer (.xls
elle .xlsx
) eller som .csv
-filer. Dersom du ønsker å prøve på kommandoene selv, kan du laste ned følgende eksempelfiler: data.xls, data.xlsx, data.csv.
Excel-filer kan leses inn i R ved hjelp av read_excel()
som ligger i readxl
-pakken:
library(readxl)
data <- read_excel("data.xls")
# ...eller dersom det er en .xlsx-fil:
data <- read_excel("data.xlsx")
.csv
-filer kan lastes inn i R ved hjelp av read_csv()
som ligger i readr
-pakken:
“csv” er en forkortelse for “comma separated values”, og grunnen til det kan du se ved å åpne opp data.csv
i en ren tekst-editor. Da ser du at verdiene på rekken er separert med et komma. Av og til har disse filene litt andre formater, så vi må kunne håndtere følgende varianter:
- Dersom det ikke er komma som er brukt til å separere verdiene (det kan du alltid sjekke ved å se på filen i en tekst-editor), så kan du bruke funksjonen
read_delim
i stedet forread_csv
, og bruke et argument for å spesifisere hvilket tegn som er brukt. Dersom det for eksempel er brukt semikolon “;”, kan du lese datasettet ved å brukeread_delim("data.xlsx", delim = ";")
. - Dersom komma er brukt for å skille desimaler fra heltall, som er vanlig i europeiske datasett, kan du bruke følgende kommando (der vi fortsatt antar at semikolon blir brukt til å skille mellom kolonner):
read_delim("data.xlsx", delim = ";", locale = locale(decimal_mark = ",")
. - Dersom en bestemt tekst-streng blir brukt til å indikere manglende verdier i datasettet kan du bruke argumentet
na
iread_csv()
ogread_delim()
til å spesifisere denne tekst-strengen, slik at den blir tolket riktig ved innlesingen som manglende verdi. Dette argumentet fungerer også iread_excel()
.
Numerisk deskriptiv statistikk
Vi bruker eksempeldatasettene data_survey.csv og data_fishermen_mercury.csv som eksempler. Du skal kunne bruke følgende funksjoner for å regne ut numerisk deskriptiv statistikk:
survey <- read_csv("data_survey.csv")
fishermen <- read_csv("data_fishermen_mercury.csv")
mean(survey$age) # Gjennomsnitt
median(survey$age) # Median
table(survey$party) # Kan lese av typetallet manuelt.
which.max(table(survey$party)) # Eller bruke funksjonen which.max()
sd(fishermen$total_mercury) # Standardavvik
quantile(fishermen$total_mercury, 0.20) # Kvantiler
quantile(fishermen$total_mercury) # Kvartilene
cor(fishermen$height, fishermen$weight) # Korrelasjonskoeffisient
table(survey$religious) # Frekvenstabell
survey %>% # Krysstabell av to variabler (krever
select(party, religious) %>% # pipe-operatoren og select()-funks.
table # fra dplyr-pakken)
Grafisk deskriptiv statistikk med ggplot2
Du skal kunne lage følgende plott ved hjelp av ggplot2
-pakken;
library(ggplot2)
# Boksplott
fishermen %>%
ggplot +
geom_boxplot(aes(y = total_mercury))
# Deler opp i grupper basert på en annen variabel
fishermen %>%
ggplot +
geom_boxplot(aes(y = total_mercury, x = as.factor(fisherman)))
# Søylediagram
survey %>%
ggplot +
geom_bar(aes(x = as.factor(religious)))
# Histogram
survey %>%
ggplot +
geom_histogram(aes(x = age))
# Spredningsplott
fishermen %>%
ggplot +
geom_point(aes(x = height, y = weight))
Du skal kunne grunnleggende bearbeiding av ggplot
-figurer: