R

R er et gratis statistikkprogram som er tilgjengelig både for Windows og Linux. Denne veiledningen tar for seg bruk i Windows.

Hvordan starte R

For å starte R trykker du Start -> Programs -> R. (R ligger med andre ord i Start-menyen). Et eget vindu vil da poppe opp (se bilde under), dette er heretter kalt RGui. Denne inneholder bl.a et "R Console" vindu der du kan angi ulike R-kommandoer.

Hvordan avslutte R

Gi kommandoen quit() eller q() i R Console-vinduet, eller trykk på krysset øverst i høyre hjørne.

 > q()
 Save workspace image? [y/n/c]: 

Hvis du ønsker å lagre det du har jobbet med (varibler og innhold) til neste gang du bruker R trykk: y, hvis ikke trykk: n.

Hvis du lagrer vil denne linjen komme opp neste gang du starter R:

 [Previously saved workspace restored]

Hvordan komme igang

R er en pakke som baserer seg på at du skriver ut ulike kommandoer/funksjonskall, mye likt Matlab. For de som kjenner statistikkprogrammet Splus, så er R svært likt Splus. De fleste kommandoer kan utføres på samme måte i R og Splus. Når du har startet opp R, vil du få opp et R Console-vindu der symbolet ">" kommer opp. Etter dette symbolet kan du skrive ulike kommandoer.

Hvis du f.eks ønsker at variablen x skal inneholde tallet 10 skriver du:

 > x=10 

eller

 > x<-10 

NB: I R kan du bruke enten "=" eller "<-" for å tilordne variable, de fungerer helt likt.

R printer ikke automatisk ut resultatet når du tilordner variable. (x=10 i R fungerer som x=10; i Matlab) For å se på hva varibelen x inneholder må du skrive:

 > x

du får da utskriften:

 [1] 10

Eksempler på bruk og nyttige funksjoner

R kan beregne det meste du trenger innenfor statistikk. Her er noen eksempler på vanlig bruk og funksjoner som er greie å vite om:

Lage en vektor

  • > z=c(1,2,3,4,5,6)

lager en 1x6-vektor med verdiene 10, 4, og 5

  • > dim(z)=c(2,3)
  > z
      [,1] [,2] [,3]
 [1,]    1    3    5
 [2,]    2    4    6

gjør om z til en 2x3-matrise

Gjennomsnitt og standardavvik

  • mean(z)

beregner gjennomsnittet til vektoren z

  • sd(z)

beregner standardavviket til vektoren z

Bruk av sannsynlighetsfordelinger

De vanligste sannsynlighetsfordelingene finnes i R. Blant annet:

  • norm(): normalfordelingen
  • beta(): betafordeling
  • gamma(): gammafordeling
  • binom(): binomialfordeling

Ved å prefikse fordelingsnavnene med en av bokstavene d,p eller r, kan du bruke funksjonene under:

  • tettheten/pdf: (d)
  • kummulativ tetthet/cdf (p)
  • trekke fra fordelingen (r)

Eks:

  • > x = rnorm(n)

lager en vektor x med n tilfeldige variable fra normalfordelingen med mean=0, sd=1 (dette er default hvis du ikke skriver inn mean og sd)

  • > rnorm(n,10,9)

trekker n tilfeldige variable fra normalfordelingen med mean=10, sd=9

  • > pnorm(5,1,0.5)

gir sannsynligheten for at en variabel er <=5 i normalfordelingen med mean=1 og sd=0.5

Lage plott

  • > hist(x)

lager et histogram av x

  • > plot(x)

lager forskjellige typer plott av x (histogram, grafer, osv), avhengig av hva x inneholder. Trykk på enter for å se neste plott. Hvis du vil lagre plottene dine: hold pekeren over plottet og trykk på høyre museknapp, velg "save".

Andre nyttige funksjoner

  • > summary(x)

Printer ut en kort statistisk beskrivelse av variabelen x. Hvis x er en vektor vil den bl.a gi standardavvik, median og gjennomsnitt til elementene i vektoren.

Vanlige problemer og løsninger

Error: syntax error

Dette er den vanligste feilen i R, og betyr at du har feil syntaks, dvs. du har skrevet inn en kommando som ikke er gyldig.

Eks:

  • Multiplikasjon
 > n=10
 > k=10n
 Error: syntax error

Her har vi glemt å bruke * mellom 10 og n for multiplikasjon. Rett syntaks er:

 > n=10
 > k=10*n
 > k
 [1] 100

  • Vektorer/arrayer

Tilordningen under ville vært rett i Matlab, men fungerer ikke i R:

 > z=(1,2,3,4,5,6) 
 Error: syntax error

Rett syntaks er:

 > z=c(1,2,3,4,5,6)
 > z

[1] 1 2 3 4 5 6

Lage en .R-fil

Når du skal skrive store programmer i R blir det litt tungvint å skrive alt i kommandovinduet, og du har dessuten dårlige lagringmuligheter. Da kan det heller lønne seg å lagre kommandoene i en .R-fil (på samme måte som vi lager .m-filer i matlab). Du bruker din vanlige tekstbehandler (f.eks Emacs eller TextPad), og lagrer filen som "filnavn.R". I filen skriver du kommandoene på vanlig måte på hver sin linje. Alt som kommer etter tegnet # på en linje leses som kommentarer.

Du kan også trykke File -> New script i RGui. Du får da opp et R Editor-vindu som du kan skrive koden i. For å lagre filen trykker du på File -> save.

Eks:

Her er filen "eks.R" som jeg har laget i emacs:

 ##Dette er en eksempelfil

 y=c(10,9,50,100,6)	#lager en vektor med 5 verdier

 mean(y)		#finner gjennomsnittet
 sd(y)			#finner standardavviket

 y			#printer ut y
 print(y)		#du kan også skrive dette for å printe ut y	

 summary(y)		#skriver ut viktig statistisk info om y	
 plot(y)		#plotter y, plottene blir lagret i fila Rplots.ps i Linux 	

 y2=y*5			#multipliserer alle elementer i y med 5.
 y2			#printer ut den nye vektoren

 ##Slutt på eksempelfil

Kjøre en .R-fil

For å kjøre en fil må du først åpne den. Dette gjør du ved å trykke File -> Open Script. Du får da opp et vindu, R Editor, med filen din. Du kan kjøre kommandoer ved å markere de kommandoene du ønsker å kjøre, trykke på høyre museknapp og så på "Run line or selection". Se figuren under:

Kommandoene du markerer vil bli kjørt i R Console-vinduet.

Lese data fra fil

I statistiske beregninger har man ofte bruk for å tolke store mengde data fra f.eks en tekstfil. I R kan du lese inn data fra tekstfiler blant annet med funksjonen read.table(). Under ser du filen "matpakke.txt"

 "klasse"  "antMatpakke" "antElever"
 1    	 	10	20
 2		8	21
 3		5	20
 4		10	25
 5		8	19
 6		1	24
 7		5	15

For å lese inn denne filen og legge all informasjonen i variabelen "mat":

> mat<-read.table("matpakke.txt", header=T)

"mat" inneholder nå:

 > mat
   klasse antMatpakke antElever
 1      1          10        20
 2      2           8        21
 3      3           5        20
 4      4          10        25
 5      5           8        19
 6      6           1        24
 7      7           5        15

Forklaring

 matpakke.txt: filnavnet
 header=T: første linje i filen skal tolkes som overskrift til kolonnene

Relevante linker og hjelp

Linker:

Annen hjelp:

I kommandovinduet:

skriv: help("funksjon du trenger hjelp til"), f.eks:

 > help(plot)
 plot                package:graphics                R Documentation

 Generic X-Y Plotting

 Description:

     Generic function for plotting of R objects.  For more details
     about the graphical parameter arguments, see 'par'.

 Usage:

     plot(x, y, ...)

 ......OSV.....

I RGui:

Trykk på Help-menyen. Her står det meste :)