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
.
<- 2 to
Synonymer Vi legger informasjon i lagringsboksen
(objektet) med en pil inn i objektet (<-
) eller med et
erliktegn (=
).
= 2; to <- 2 to
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
+2 to
## [1] 4
Overskrive objektet (NB: man overskriver alltid; det er ingenting som heter å “oppdatere” et objekt).
<- 3
to to
## [1] 3
Lag et nytt objekt.
<- 3 tre
Gjør operasjoner på to objekter.
+tre to
## [1] 6
Lagre i et tredje objekt.
<- to+tre fem
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
== 5 fem
## [1] FALSE
Negasjon Er objektet ikke lik 5?
!= 5 fem
## [1] TRUE
Størrelser Er fem
større enn 6?
> 6 fem
## [1] FALSE
Større eller lik?
>= 6 fem
## [1] TRUE
Flere betingelser Er fem lavere enn 6 og høyere enn 0?
< 6 & fem > 0 fem
## [1] FALSE
Er fem høyere enn 6 eller lavere enn 0?
>= 6 | fem > 0 fem
## [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){
<- 5
fem
}
#Sjekk hva som skjedde
fem
## [1] 5
Nå er det din tur!
Bruk tabellen under, og lek deg fram!