1.11 Oppsummering og ekstra oppgaver

I denne modulen har vi gått gjennom noen helt grunnleggende funksjoner i R. Du har lært at

  • R er navner på et programmeringsspråk,
  • RStudio er navnet på et program der vi kan skrive og kjøre R-kode, og
  • identifisert fire forskjellige vindu i RStudio: konsollen (der R-koden kjøres), teksteditoren (der vi skriver script), samt to vinduer der vi kan se en oversikt over hva som er i dataminnet og få opp plott og figurer som vi lager.

Videre har du

  • kjørt noen enkle kommandoer,
  • lagret tall og vektorer ved hjelp av variabelnavn,
  • prøvd ut noen innebygde R-funksjoner for å regne ut f.eks. gjennomsnitt og standardavvik av tallvektorer,
  • laget et spredningsplott,
  • lært hva et working directory (arbeidsmappe) er, og
  • installert R-pakker, f.eks readxl som vi brukte den til å lese inn et lite datasett i R.

Til slutt har du

  • kjørt en \(t\)-test,
  • skrevet et script (et lite program om du vil) der vi har lagret flere av kommandoene over i en tekstfil, og
  • lært om pipe-operatoren og enkel datavask ved hjelp av funksjoner i dplyr-pakken.

Dersom du har fulgt modulen selv har du nå kanskje skrevet et lite script i tekstvinduet som ser ut omtrent som koden under. Når du har gjort alt riktig, skal du nå kunne kjøre gjennom disse kodelinjene uten feilmeldinger ved hjelp av Ctrl-Enter.

Dette er helt grunnleggende (Spør om hjelp! Gi hjelp!). Har du problemer her, sørg for å få dem ordnet. Spør først en medstudent om hjelp, og deretter eventuelt studentassistent eller foreleser. Studenter som har god erfaring med data og/eller programmering, kan lære mye av å hjelpe medstudenter løse feilmeldinger.

# Introduksjon til R
# -------------------

# Laster inn nødvendige pakker
library(readxl)
library(ggplot2)

# Laster inn datasettet
testdata <- read_xls("testdata.xls")

# Gjør t-testen til spørsmål F i den første dataøvingen
testresultat <- t.test(testdata$X1, 
                       testdata$X2, 
                       var.equal = TRUE, 
                       alternative = "two.sided")

# Skriver ut resultatet av denne t-testen
testresultat

# Lager et plott av variabelen X1 mot X2
p <- ggplot(testdata, aes(x = X1, y = X2)) +
        geom_point()

# Lagrer plottet
ggsave("testplot.pdf", plot = p)
  1. Lagre scriptet ditt. I RStudio velger du File -> Save og trykker Ok dersom det kommer opp et vindu om character encoding e.l. Finn en fornuftig plassering (gjerne i samme mappe som øvelsesdatasettet) og gi filen et fornuftig navn. Standard filending for R-script er .R, men det er skjult for de fleste Windowsbrukere. Lukk RStudio.

  2. Du kan nå åpne skriptfilen i RStudio igjen. Enten ved å dobbeltklikke på den, eller ved å åpne RStudio, velge File -> Open file, og så videre (dersom skriptet ikke allerede ligger åpnet). Du kan også åpne skriptfilen i en hvilken som helst notatbok (Notebook e.l.) og se at det er en helt standard, ren tekstfil. Hva er fordelen med å lagre en analyse som et skript versus å gjøre ting i et menydrevet grafisk grensesnitt?

Løsning

Når vi lagrer koden vår i et skript sørger vi for at hele analysen vår er lagret, ikke bare resultatene. Med andre ord, dersom du på et senere tidspunkt ønsker å komme tilbake til et analyseprosjekt og gjøre noen enkle forandringer, så er det fort gjort å gjøre det i skriptet, og så kjøre hele analysen på nytt. Dersom du i stedet hadde brukt et menydrevet system for å gjennomføre analysen (pek og klikk) kunne du risikere å måtte gjøre alt sammen på nytt (hvis du da husker hvordan du gjorde det), fordi du ikke like enkelt kan lagre hvert eneste museklikk.

  1. Vi skal nå pynte på plottet og gjøre det riktig pent. Det gjør vi ved å legge til nye linjer i ggplot-kommandoen. Erstatt den nest siste linjen i skriptet med kommandoen under, og se at du får en figur omtrent som den som følger under det igjen (vi bruker aksetitler i henhold til oppgavene i den første datalabben, der vi får vite at datasettet representerer kvalitet på kaffeavlingen før og etter en omlegging i produksjonsmetode):
ggplot(testdata, aes(x = X1, y = X2)) +
        geom_point(size = 2) +
        xlab("Produksjonsmetode 1") +
        ylab("Produksjonsmetode 2") +
        theme_classic()

  1. Merk at vi bruker “+”-tegnet til å legge til flere “lag” med grafiske egenskaper til plottet. Hvert “lag” består av en funksjon, som ofte kan ta argumenter; f.eks. brukes funksjonen geom_point() til å lage prikker, og så kan vi f.eks. bruke argumentet size til å styre størrelsen på prikkene. Kan du finne ut hva hvert enkelt av disse “lagene” gjør? Hint: ta bort en linje av gangen, og se hva som skjer. Pass på at det er et pluss mellom hvert lag.

  2. Prøv å endre på noen av lagene eller legg til nye. For eksempel kan du lage en tittel ved å legge til funksjonen ggtitle() som et lag, og du kan endre aksetitlene. Prøv også å bruke argumentet shape i geom_point() til å bytte ut prikkene med en annen form. Det finnes flere andre “tema” i tillegg til theme_classic(), f.eks. theme_bw(), theme_dark(), etc.

Forslag

Prøv for eksempel dette:

ggplot(testdata, aes(x = X1, y = X2)) +
        geom_point(size = 2, shape = 4) +
        ggtitle("Produksjonskvalitet") +
        xlab("Ny aksetittel") +
        ylab("Enda en aksetittel") +
        theme_light()

  1. Det følger med omfattende dokumentasjon med R. Du kan lese om alle R-funksjoner ved å skrive ? før funksjonsnavnet i konsollen. Prøv for eksempel å skrive ?mean i konsollen og trykk enter.