R
R er et gratis statistikkprogram og er tilgjengelig både for Linux og Windows. Denne veildningen tar for seg bruk i Linux.
- Hvordan starte R
- Hvordan avslutte R
- Hvordan komme igang
- Eksempler på bruk og nyttige funksjoner
- Vanlige problemer og løsninger
- Lage en .R-fil
- Kjøre en .R-fil
- Lese data fra fil
- Relevante linker og hjelp
Hvordan starte R
Du starter R ved å gi kommandoen R i et shell-vindu (som xterm). Du vil så komme inn i R-modus der du kan gi ulike R-kommandoer.
Når du starter R ser det slik ut i xterm:
ingebol@zeebrugge ~ $ R
R : Copyright 2005, The R Foundation for Statistical Computing Version 2.1.1 (2005-06-20), ISBN 3-900051-07-0
R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R.
[Previously saved workspace restored]
>
Hvordan avslutte R
Gi kommandoen quit() eller q() i vinduet (R Console i Windows):
> 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 komme inn i en kommando-modus 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
og 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.
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.
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 den mappa jeg er i. y2=y*5 #multipliserer alle elementer i y med 5. y2 #printer ut den nye vektoren ##Slutt på eksempelfil
Kjøre en .R-fil
Du må stå i den katalogen filen er lagret i når du kjører den. Min fil, eks.R, er lagret i katalogen termvakt. For å kjøre eks.R gjør jeg følgende i xterm:
ingebol@brussel ~ $ cd termvakt ./termvakt ingebol@brussel ~/termvakt $ R --no-save <eks.R> utfil
Generelt kjører man R-filer slik:
R [options] [<filnavn][>resultatfil]
Forklaring:
- --no-save: ønsker ikke å lagre workspace.
- --save: lagrer workspace til neste gang du bruker R.
- utfil: filen resultatene mine blir skrevet i. utfil blir lagret i mappen termvakt, og ser slik ut:
> ##Dette er en eksempelfil
>
> y=c(10,9,50,100,6) #lager en vektor med 5 verdier
>
> mean(y) #finner gjennomsnittet
[1] 35
> sd(y) #finner standardavviket
[1] 40.59557
>
> y #printer ut y
[1] 10 9 50 100 6
>
> print(y) #du kan også skrive dette for å printe ut y
[1] 10 9 50 100 6
>
> summary(y) #skriver ut viktig statistisk info om y
Min. 1st Qu. Median Mean 3rd Qu. Max.
6 9 10 35 50 100
>
> plot(y) #plotter y, denne blir lagret som Rplots.ps i den mappa jeg er i.
>
> y2=y*5 #multipliserer alle elementer i y med 5.
>
> y2 #printer ut den nye vektoren
[1] 50 45 250 500 30
>
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" skriver jeg
>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.....