Sesjon 1: Vårt første møte med R

R-workshop 30. og 31. august, OsloMET

Introduksjon: Hva er R?

Målet med vårt første møte med R er å:

  • håndtere skrekken når dere åpner et nytt og ukjent program
  • gå inn i deres første dialog med R
  • få grep om en typisk arbeidsflyt

R er et språk

  • … med et vokabular og syntaks :

    • verb (funksjoner)
    • objekter (digitale informasjonsbokser)
    • syntaks (hva som må sier først og sist, hvordan du separerer uttrykk)
    • synonymer
  • … med dialekter

    • base-R (riksmål): det opprinnelige og grunnleggende språket. Denne kommer levert med R.
    • tidyverse : særlig nyttig for tilrettelegging (rydding) av data. Denne kommer levert i “pakker”.
    • ggplot : for grafisk fremstilling

Du trenger ikke å pugge gloser, og du kan si ting på mange forskjellige måter. Snart vil du finne din egen stil!

R er et statistikkprogram med åpen kildekode

  • versatilt og oppdatert, men rotete

  • tilrettelagt for dokumenterbare analyser

    • for deg selv
    • for å dele
    • for å gjøre ting enkelt

Vårt første møte

Vi begynner med å klikke på riktig ikon. Vi skal åpne RStudio, ikke R.

Nå har vi tre vinduer åpne: R-konsollen, arbeidsmiljøet og vinudet hvor vi ser figurene våre. De to siste vinduene skal vi foreløpig ignorere.

Dialog i konsollen

Vi begynner med “konsollen”. Dette er et vindu for direkte kommunikasjon til R. I framtiden vil dere bare bruke denne for smårusk.

Nå kan vi gi i dialog!

Hermeleken Den foregår ved at jeg setter hva jeg skal si i “hermetegn”. R gjentar etter meg, men foretar ingen operasjoner selv.

"Hei!"
## [1] "Hei!"

Dialog - kalkulator Jeg kan bruke R som kalkulator. Da spør jeg, så svarer R.

2+2
## [1] 4

R kjenner til de fleste matematiske operasjoner, og likner i praksis på lommekalkulatoren din (om du fortsatt husker den).

Ikke smile, ikke le Vi kan be R ignorere hva vi sier med #.

# ignorer dette

Det er nyttig når vi dokumenterer kodene våre.

Dialog via notatblokka (skript)

Vi har en bedre arbeidsflyt når vi bruker et R-skript. Vi åpner et nytt skript gjennom “File”-menyen eller ved å trykke “ctrl+shift+N”. Vi lagrer gjennom filmenyen med filforlengelsen “.R”: skript.R

Vi skriver på notatblokka før vi “sender” koden ned til R. Det kan vi gjøre ved å * markere teksten og trykke “Run” (øverst til høyre) * “ctrl+Enter”

Nå kan vi fortsette dialogen vår.

Objekter

Vi kan lagre informasjon i objekter. Dette er digitale lagringsbokser. Hvis vi ikke lagrer informasjon i objekter, er den tapt!

Her er objektet to.

to <- 2

Synonymer Vi legger informasjon i lagringsboksen (objektet) med en pil inn i objektet (<-) eller med et erliktegn (=).

to = 2; to <- 2

Når vi lagrer informasjon i et objekt, gir ikke R svaret i konsollen, men legger det direkte i objektet.

Vi kan sjekke hva som er i objektet.

to
## [1] 2

Gjør regneoperasjoner på objektet

to+2
## [1] 4

Overskrive objektet (NB: man overskriver alltid; det er ingenting som heter å “oppdatere” et objekt).

to <- 3
to
## [1] 3

Lag et nytt objekt.

tre <- 3

Gjør operasjoner på to objekter.

to+tre
## [1] 6

Lagre i et tredje objekt.

fem <- to+tre

Hvorfor objekter?

R er et objektorientert språk. Vi lagrer all informasjon i objekter som befinner seg i arbeidsområdet vårt (i kortidsminnet når RStudio er åpent).

Eksempler på objekter:

  • datamatriser
  • modellresultater
  • figurer
  • variabler/vektorer

Gjetteleken (mer dialog)

Er det sant? Vi kan spørre R om noe er sant

fem == 5
## [1] FALSE

Negasjon Er objektet ikke lik 5?

fem != 5
## [1] TRUE

Størrelser Er fem større enn 6?

fem > 6
## [1] FALSE

Større eller lik?

fem >= 6
## [1] TRUE

Flere betingelser Er fem lavere enn 6 og høyere enn 0?

fem < 6 & fem > 0
## [1] FALSE

Er fem høyere enn 6 eller lavere enn 0?

fem >= 6 | fem > 0
## [1] TRUE

Når du bruker “eller” er det lurt å pakke ting in i parentes. Da kan du kombinere både “og” og “eller” i samme betingelse. Da identifiserer du flere gruper/undergrupper.

Hvorfor er dette nyttig?

Dette er gull når vi sjekker og omkoder data.

Betinget omkoding La oss rette objektet vårt ved å gi R en betingelse.

if(fem != 5){
  fem <- 5
}

#Sjekk hva som skjedde
fem
## [1] 5

Nå er det din tur!

Bruk tabellen under, og lek deg fram!