R

En bitteliten introduksjon

Tormod Bøe
RKBU, Uni helse, Uni research

Hvordan får jeg installert R?

Maskin driftet av UiB?

  • Opprett sak i BRITA
  • Be samtidig om å få installert Rstudio

Drifter du selv?

  • Last ned programvaren og installer

Hvordan er R bygget opp?

Det kan være nyttig å tenke på R som et statistisk operativsystem som kan bygges ut med programmer etter behov, eller som en smarttelefon som man kan installere apper på.

  • base inneholder en rekke statistiske funksjoner
  • packages inneholder ulike tilleggsfunksjoner

Det finnes mer enn 4,400 pakker tilgjengelig gjennom CRAN, og man kan få tilgang på enda flere funksjoner ved å installere fra andre kilder som for eksempel github.

En del pakker er tematisk organisert under Task Views.

Det første møtet med R er skremmende...

...men hjelpen er nær...

R er ekstremt godt dokumentert, det er svært mye brukt og det finnes derfor en nærmest endeløs mengde informasjon og hjelp tilgjengelig.

Det finnes også etterhvert mange bøker tilgjengelig, en del av de som er publisert på Springer kan man laste ned gratis via universitetsbiblioteket. Det kan være bra å starte her:

Noen gode kilder på nett er:

...etterhvert skriver du reproduserbare artikler med kode og tekst i samme dokument...

data (mtcars)
require (xtable)
options (xtable.type = 'html')
xtable (head(mtcars, summary = FALSE))

mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 0.00 1.00 4.00 4.00
Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 0.00 1.00 4.00 4.00
Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 1.00 1.00 4.00 1.00
Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 1.00 0.00 3.00 1.00
Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 0.00 0.00 3.00 2.00
Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22 1.00 0.00 3.00 1.00

Litt data og en kjapp regresjonsanalayse:

temperatur <- c (10 ,   15  ,  20  ,  25 ,   30)
solgte_is <- c (150 ,   180  ,  190  ,  200  ,  210)
drukningsulykker <- c (0, 2, 4, 6, 8 )
fit1 <- lm (drukningsulykker ~ solgte_is)
fit2 <-lm (drukningsulykker ~ solgte_is + temperatur)

Og rapportering med tekst og kode: "Det var en høy positiv korrelasjon mellom solgte is og drukningsulykker (r = 0.9615), og issalg var en signifikant prediktor for drukningsulykker (b = 0.0378, p = 0.0162). Justert for temperatur, falt imidlertid sammenhengen mellom isspising og drukningsulykker bort (b = 0.0025, p = 0.9217)."

Behind the scenes:

...korrelasjon mellom solgte is og drukning (r = 'r cor(temp,is)')...
...signifikant prediktor for drukning (b = 'r fit1$coefficients[[2]]', p = 'r sum1$coefficients[[8]]')...
...isspising og drukningsulykker bort (b = 'r fit2$coefficients[[2]]', p = 'r sum2$coefficients[[11]]')...

...lager misunnelsesverdige plott...

require (ggplot2)
qplot (temperatur, solgte_is))

plot of chunk mtcars-plot

...og regresjonsdiagnoser...

par(mfrow = c(2, 2))
plot(fit2)

plot of chunk regplot

...og snart skjønner du ikke hvordan du klarte deg uten!

Noen pakker som kan være interessante:

  • ggplot2 for glimrende plottfunksjoner
  • xtable og psytabs som lar deg formatere tabeller
  • psych for psykologi og psykometri
  • lavaan for analyser med latente variabler
  • foreign lar deg lese data fra SPSS, Stata, Minitab, dbBase...
  • Det finnes også pakker som gir deg grafisk grensesnitt, men de fleste er dårlige.

Nye pakker installeres fra R

> install.packages("NAVN HER", dep = TRUE) # installerer pakker og andre pakker som den avhenger av, f.eks.
> install.packages("ggplot2", dep = TRUE)  # og taes i bruk med kommandoen `library("NAVN HER")'
> library(ggplot2)                         # kommentarer i koden markeres ved "#"

Sjekk ut crantastic for å finne populære pakker med brukervurdering.

For spesielt interesserte

  • Markdown og knitr i i RStudio lar deg kombinere kode og tekst (uten å måtte forholde deg til sweave og tex). Et lite eksempel jeg laget med data fra levekårsundersøkelsen i Bergen.

  • Slidify lar deg lage html5 presentasjoner med RStudio, markdown og R (som den du ser på akkurat nå)

  • Flere gratis kurs fra coursera er basert på bruk av R

Til slutt en avsluttende kommentar fra djevelens advokat med introduksjonen:

  • "If you are using R and you think you’re in hell, this is a map for you"

...det er selvfølgelig ikke alt som er perfekt med R (heller)...