2 + 2
[1] 4
print("Hello world")
[1] "Hello world"
sqrt(64)
[1] 8
# Dette er en kommentar og vil ikke leses av kodeleseren.
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.
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()
.
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.
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:
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å:
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.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.2
1. 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.
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.↩︎