Ulike måter å dele et R-skript med andre

Author

Håvard Karlsen

Published

April 17, 2026

Det er mange grunner til å dele kode med andre, slik som:

Uansett hva formålet er, er det to underliggende premisser når du deler koden:

  1. Mottakeren skal være i stand til å lese skriptet og forstå det
  2. Mottakeren skal være i stand til å kjøre skriptet ditt

Tenk derfor på hvor lett det for mottakeren å lese og kjøre skriptet ditt når du deler det.

Her er noen eksempler på måter du kan dele skript på. Akkurat hva som er best avhenger av mulighetene du har til rådighet, og din egen tekniske ekspertise. Det er så klart også tusen andre måter å dele filer på.

Dele R-skriptet som .r-skript

Den beste måten å dele R-kode på er å dele sjølve .r-fila. Fila er bare en tekstfil, så den kan leses av enkle tekstprogrammer. Og mottakeren kan åpne fila i R og arbeide videre med den umiddebart.

Workaround hvis du kan dele tekstfil, men ikke R-fil

Noen opplastningsportaler er konservative og liker kun enkelte filformater. Dersom du kan laste opp en tekstfil (.txt), men ikke .r, kan du utnytte dette. Siden R-skriptet egentlig bare er en tekstfil, kan du endre filtypen fra .R til .txt. Mottakeren kan på sin side endre den tilbake til .R. Hvis du har fila skript.R, endrer du den altså til skript.txt og deler den med andre. Når de har fått lasta den ned kan de endre filas navn tilbake til skript.R og åpne det i RStudio uten problemer.

Lime inn koden i en tekst-fil

Dette er egentlig det samme som i forrige punkt, men framgangsmåten er litt mindre “hi-tech” fordi den baserer seg på copy-paste heller enn å endre filendelsen til filer. Kopier all teksten fra R-skriptet og lim det inn i en .txt-fil. Du kan lage en .txt-fil med NotePad (Windows) eller TextEdit (macOS). Del denne .txt-fila.

Dokumentere koden inline via Quarto

Quarto-dokumenter er ment for å enkelt kode og skrive om hverandre. I utgangspunktet skrives koden direkte i dokumentet sammen med utfallet av koden (skjønt denne atferden kan endres). Det gjør det tydelig hva hver kodeblokk gjør. Det er ikke like lett å gjenbruke koden, siden den må kopieres ut av pdf-en, og ofte må man manuelt fikse linjeskift og slikt. Men man får med automatisk fargelegging av koden som forbedrer lesinga. Og det knytter hver kodeblokk mer direkte til det som blir produsert av koden.

library(tidyverse)

dat <- read_csv("data/stigmdata.csv")

# Lager en kjapp oversikt over kilo og agurker per sted
dat |> 
  filter(dato > as.Date("2022-01-02")) |> 
  select(dato, sted, kg, agurker) |> 
  group_by(sted) |> 
  summarise(
    mean_kg = mean(kg, na.rm = TRUE), 
    sd_agurk = sd(agurker, na.rm = TRUE)
  )
# A tibble: 3 × 3
  sted      mean_kg sd_agurk
  <chr>       <dbl>    <dbl>
1 Bergen       100     NA   
2 Oslo         132.     1.41
3 Trondheim    110      1   

Og slik ser denne teksten ut i Quarto:

Dokumentere koden på slutten av dokumentet via Quarto

Det er likevel ikke alltid man vil ha koden så tilstedeværende i teksten som når man viser koden inline over. Istedenfor kan man putte all koden i slutten av Quarto-dokumentet for å samle det på ett sted. Dette kan også gjøres for å lage en pdf med kun skriptet. Man kan spesifisere at kode-chunken (kodeblokken) ikke skal leses av R slik at det ikke kommer noe output fra den. Det gjør man ved å spesifisere chunkens option ved hjelp av #| eval: false.

```{r}
#| eval: false

library(tidyverse)

dat <- read_csv("data/stigmdata.csv")

# Lager en kjapp oversikt over kilo og agurker per sted
dat |> 
  filter(dato > as.Date("2022-01-02")) |> 
  select(dato, sted, kg, agurker) |> 
  group_by(sted) |> 
  summarise(
    mean_kg = mean(kg, na.rm = TRUE), 
    sd_agurk = sd(agurker, na.rm = TRUE)
  )
```

Her sier vi at chunken ikke skal evalueres, dvs. R skal printe den uten å kjøre koden. Se mer om dette på Quartos hjelpesider.

Lime inn koden i en word-fil

Dette er ikke en bra måte å dele koden på. Word foretar en hel del automatisk formateringer av tekst som ødelegger skriptet. Den kan finne på å gjøre små bokstaver om til store i enkelte ord, tolke tegn til å bety noe annet enn planlagt (slik som å gjøre om kommentarer # til titler).

Dette er likevel en mulighet dersom ingenting annet går. Her er noen tips for å sørge for at koden blir mest mulig leselig:

  • Skru av all form for automatisk formatering for word-fila.
  • Bruk en mono spaced-skriftype, slik som courier new eller consolas. Da blir det lettere å lese koden, siden alle tegn tar like mye plass.
  • Forsøk å bevare inntrykk og mellomrom som du hadde det i det opprinnelige skriptet.

Skjermbilde av koden

Dette er den verste måten å dele skriptet på. Nå må leseren manuelt skrive av all koden du har laget, og sannsynligheten for feil er enorm. Ergo er det vanskelig å kjøre skriptet ditt. Gjør dette kun mot din verste fiende.

Bilde av skjermen

Okei, jeg tok feil. Dette er den verste måten å dele skriptet på.