Afsnit R.1: R som primitiv lommeregner
Her følger nogle eksempler på, hvordan
R kan bruges som lommeregner.
Den linje, hvor
R skriver resultatet på, starter med ``[1]'',
som henviser
til, at tallet der følger, er det første i en eventuel række af flere
tal.
> 2*3
[1] 6
> 2+3
[1] 5
> 2-3
[1] -1
> 6/2
[1] 3
> 3^2
[1] 9
> 2+3*2
[1] 8
> (2+3)*2
[1] 10
> log(exp(10)) # log er den naturlige logaritme
[1] 10
> sqrt(4)
[1] 2
R.1.1 Variable i R
I
R indføres variable ved at skrive det navn, man ønsker, og
tildele variablen en værdi gennem et lighedstegn. Så selvom man umiddelbart
læser "x=2" som "x er lig med 2", bør man retteligt læse dette som
"x tildeles værdien 2".
> x=2
> y=3
> z=x*y;
> z
[1] 6
> 3*z
[1] 18
R.1.2 Vektorer i R
En af styrkerne ved et program som
R er,
at man kan samle en række tal
i en vektor og derefter lave beregninger, der involverer hele
vektoren ved simple ordrer. En vektor af længde
k består af
k
tal nummereret fra 1 til
k. Hvis
R indeholder en vektor
v,
kan man få fat i for eksempel det tredje element ved at skrive
v[3].
En vektor kan dannes ved at skrive elementerne inden for de runde
parenteser i kommandoen
c( )
med komma imellem. Bogstavet "c"
står her for "combine" eller "concatenate".
> v=c(3,7,2,-1,2,5)
> v
[1] 3 7 2 -1 2 5
> v[3] # udtrække det tredje element
[1] 2
> v[length(v)]
[1] 5
# sidste element i v idet length(v) angiver antal elementer i v
> v[c(2,4)] # udtrække flere elementer
[1] 7 -1
> 2*v
[1] 6 14 4 -2 4 10
> 2+v
[1] 5 9 4 1 4 7
> min(v)
[1] -1
> max(v)
[1] 7
> which.min(v) # angiver på hvilken plads den mindste værdi står
[1] 4
> sum(v) # sum af alle elementerne
[1] 18
> cumsum(v) # løbende sum af de første i elementer
[1] 3 10 12 11 13 18
> exp(v)
[1] 20.0855369 1096.6331584 7.3890561 0.3678794 7.3890561
[6] 148.4131591
# her angiver [6] at nu kommer det sjette element i vektoren
Her følger en række specielle vektorer, der kan angives uden at skrive
alle tallene i vektoren.
> w=c(3:7)
> w
[1] 3 4 5 6 7
> w[2:4]
[1] 4 5 6
> w[3:length(w)]
[1] 5 6 7
> seq(3,7,length.out=9) # 9 ækvidistante værdier mellem 3 og 7
[1] 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0
> seq(3,7,by=1.5) # sekvens startende i 3 og springer med 1.5
[1] 3.0 4.5 6.0
> rep(1,5) # tallet 1 gentages 5 gange
[1] 1 1 1 1 1
> rep(c(1,2),c(3,4)) # 1 gentages 3 gange og 2 gentages 4 gange
[1] 1 1 1 2 2 2 2
R kan både opfatte en vektor af længde
k som en
liste med
k tal
og som en
1×k matrix. Med mindre man bruger specielle operatorer,
vil
R opfatte en vektor som en liste og lave elementvis beregninger.
> x=c(2,-1,3,8,4)
> y=c(4,1,0,3,3)
> x+y
[1] 6 0 3 11 7
> x-y
[1] -2 -2 3 5 1
> x*y
[1] 8 -1 0 24 12
> y/x
[1] 2.000 -1.000 0.000 0.375 0.750
> x^2
[1] 4 1 9 64 16
ForegåendeNæste