2  Om R

Noen forskjeller på det å jobbe i R vs. Excel og SPSS.

R et et kodespråk. Det vil si at vi arbeider gjennom skript fulle av kode. Slik som dette:

2 + 2 
[1] 4
print("Hello world")
[1] "Hello world"
sqrt(64)
[1] 8
# Dette er en kommentar og vil ikke leses av kodeleseren.

2.1 SPSS

R er mest likt SPSS, og spesielt SPSS’ syntaks. Til forskjell fra SPSS er ikke det grafiske brukergrensesnittet (GUI) noe særlig nyttig i R.

Man kan kjøre R i et GUI som følger med R når man laster programmet, som heter R hva enn versjonsnummeret er, f.eks. R 4.2.2. Men det er bedre å bruke Rstudio til å arbeide med R i. Her får du et bra GUI som blant annet fullfører kodeforslag og har mange andre støttende funksjoner.

Vi arbeider vanligvis i skript, som har forkortelsen .R. Dette er likt SPSS’ syntaksfiler (.sps). Du kan kjøre hele skriptet, eller kun deler av skriptet av gangen. Kjør deler av skriptet ved å enten ha markøren i den linja eller marker flere linjer og trykk ctrl + enter.

Til motsetning fra SPSS er Rs kodespråk lettere å lese og forstå (personlig mening). Man vil så klart aldri huske alle koder i R, men etter hvert vil en del av dem sitte fordi man bruker dem så ofte. Typiske eksempler på dette er %>%, filter() og mutate().

2.2 Excel

Det er større forskjell på R og Excel. Excel er bygd rundt det grafiske grensesnittet. Det du ser er det du får (WYSIWYG). Dette har sine fordeler og bakdeler. Den største bakdelen, slik jeg ser det, er at Excel lar deg gjøre dumme ting. F.eks. hoppe over rader, forflytte en kolonne uten å mene det, glemme å markere alle felter, og det verste av alt: slå sammen celler.

Likevel, det er mange ganger det er bedre å bruke Excel.

Vi kan importere excel-filer til R, hvilket er veldig nyttig. Den største utfordringa med dette er at vi må kjempe mot de bakdelene jeg nevnte over. Se mer om dette i sec-import-export.

I motsetning til både Excel og SPSS så lagrer R dataene bare i internt minne mens du arbeider med dem. Dvs. at du ikke er avhengig av å mellomlagre alt som en .sav, .xlsx., eller .csv-fil. Dette kan bidra til å redusere behovet for mange versjoner av samme fil på ulike tidspunkter.

2.3 Hvorfor skal jeg bruke R?

En typisk tilbakemelding:

Det tar tid å lære, det er en bratt læringskurve, og jeg får feilmeldinger hele tida.

Det er noen fordeler med R som er attraktive for oss:

  • Når du har laga et skript kan du, uten særlig mange endringer, kjøre skriptet på nytt gang etter gang. Dette sparer deg for mye tid istedenfor å måtte starte på nytt hver gang.
    • Dette er delvis mulig i SPSS-syntaks alt. R oppfordrer i større grad til dette via funksjonene sine, og måten den håndterer data på.
  • Man kan bruke R til alt. Fra før av kan vi spleise data i SPSS, lage tabeller i Excel, gjøre dem interaktive i Infogram, dele dem via Google sheets, etc. R kan gjøre alt dette i samme programvare/GUI.
  • R lese og skrive til de fleste vanlige programmer. Dvs. at vi kan starte en prosess i Excel og så fortsette den i R. Eller vi kan importere en Stata-fil til R, gjøre noen pivots og lagre den som en SPSS-fil. Dermed kan R relativt sømløst puttes inn i arbeidsprosessen. (Enklest blir det så klart å gjøre alt i R.)

2.4 Versjonering

R, Rstudio, og alle pakkene til R kommer i ulike versjoner, f.eks. R v.4.2.2, Rstudio 2023.03.0, etc. Når man installerer en pakke vil den nyeste versjonen som er kompatibel med din versjon av R installeres. Her er noen ting å være oppmerksom på:

  • Noen nye pakker funker ikke på gamle versjoner av R.
  • Noen gamle pakker funker ikke eller litt annerledes på nye versjoner av R.
  • Når pakker oppdateres vil noen ganger funksjonene deres endres.
    • Dette er en av bakdelene i tidyverse. De har endra på syntaksen sin slik at tidyverse-syntaks fra 2018 ikke gjelder i 2023. F.eks. pleide man å bruke mutate_at() før i tida for å mutere kun visse rader. Nå bruker man derimot en kombinasjon av mutate() og across() for å oppnå det samme. Dette er irriterende hvis du var vant til den gamle metoden.
  • Du har alltid tilgang til eldre versjoner av R og Rs pakker. Dette er et viktig kjennetegn ved FOSS (free, open-source software). Hvis du trenger en funksjon fra en gammel versjon av en pakke, kan du alltids nedgradere R-versjonen og laste inn den versjonen av pakka. Jeg nevner det her, men det er mer for viderekommende, og for Linux-fantaster.

Per nå er siste versjon vi har tilgang til på byplankontoret 4.2.3. Hvilken versjon har jeg?

sessionInfo()
R version 4.2.3 (2023-03-15 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)

Matrix products: default

locale:
[1] LC_COLLATE=nb-NO.UTF-8  LC_CTYPE=nb-NO.UTF-8    LC_MONETARY=nb-NO.UTF-8
[4] LC_NUMERIC=C            LC_TIME=nb-NO.UTF-8    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] htmlwidgets_1.5.4 compiler_4.2.3    magrittr_2.0.3    fastmap_1.1.0    
 [5] cli_3.4.1         tools_4.2.3       htmltools_0.5.4   rstudioapi_0.14  
 [9] stringi_1.7.8     rmarkdown_2.17    knitr_1.40        stringr_1.4.1    
[13] xfun_0.34         digest_0.6.30     jsonlite_1.8.3    rlang_1.0.6      
[17] evaluate_0.17    

Jeg har forrige versjon, 4.2.21. Grunnen er at IT installerte den nye R-versjonen i dag, og jeg ikke vil ta sjansen på at det er små endringer i koden som ødelegger noe jeg har gjort før. Mest sannsynlig vil det går bra. Små endringer, som å gå fra x.x.2 til x.x.3 vil nok ikke ha noen merkbare endringer.

Tilstedeværelsen av alle disse ulike versjonene av pakker og programvare kan kanskje oppleves som plagsomt. Men det er faktisk en fordel, og en styrke ved R. Det medfører at vi kan garantere at et skript er future proof, at det alltids kan kjøre gitt samme data og datamaskin. Se mer om dette hos Brodrigues. Vi har for eksempel ingen garanti for at Excel i 2030 lar oss åpne og behandle filene våre fra 2020. Eller at alle funksjonene vi har i cellene forstås likt i begge versjonene av Excel. Dette er ikke overdrivelse. Da Excel gikk over fra .xls til .xlsx medførte det at nye versjoner av Excel ikke alltid greide å åpna de gamle filformatene. I denne situasjonen er du avhengig av at du får tilgang på en eldre versjon av programvaren for å åpna fila di. Det er ikke sikkert man får.


  1. Den observante leser vil legge merke til at teksten er feil her. Outputen forteller oss at jeg faktisk har 4.2.3. Da jeg skreiv dette var teksten korrekt. Men noen dager seinere oppdaterte jeg til den nye versjonen av R fordi jeg oppdaga en bug med quatro-dokumenter som jeg tror blei løst i den nye versjonen. Jeg burde ha redigert denne teksten, men jeg syns den er et utmerket eksempel på utfordringa med versjonering. Her: jeg hadde tenkt å holde meg på en versjon, men jeg oppdaterte fordi jeg trengte ny funksjonalitet. Slike avveininger må man ta.

    Det kan være uvant til oss som er vant til å få en ny versjon av SPSS hvert år og av ArcGis aldri. Nå må vi ta et aktivt valg og vurdere om vi skal oppdatere programvaren. I praksis har dere ikke dette valget da dere kun kan installere den versjonen av R som er tilgjengelig på firmaportalen. Men når en versjon først er installert kan dere når som helst velge hvilken tidligere versjon av R dere vil bruke. Se en guide hos Posit.↩︎