Als eerste kennismaking met R en RStudio kun je rekenen met getallen
Maak een R script (sla het bestand op met de .R extensie) met daarin de volgende coderegels:
# Enkele berekeningen met natuurlijke getallen en
# conversie van Celsius naar Fahrenheit
# A. Heck
# 19-11-2018
een <- 1
twee <- 2
drie <- een + twee
cat("Het type van het R object", drie, "is", typeof(drie), "\n")
cat(een, '+', twee, '=', drie, "\n")
cat('6 / 8 =', 6 / 8, "\n")
cat('8 / 6 =', 8 / 6, "\n")
quotient <- 8 %/% 6; rest <- 8 %% 6;
cat('8 %/% 6 =', quotient, 'en 8 %% 6 =', rest, "\n")
Run dit R script en je krijgt de volgende uitvoer:
Het type van het R object 3 is double
1 + 2 = 3
6 / 8 = 0.75
8 / 6 = 1.333333
8 %/% 6 = 1 en 8 %% 6 = 2
Deze paar regels code roepen al om een toelichting, maar bedenk eerst zelf wat de uitvoer betekent alvorens de toelichting te lezen (klik hiervoor op de toelichtingstab rechtsonder in dit kader).
De eerste regels, zijn bedoeld als documentatie
We kunnen R instructies (mits ze compleet zijn) scheiden met een lege regel om een beter overzicht te hebben in het programmabestand.
De volgende drie regels laten zien hoe je waarden kunt opslaan in zelfgekozen namen, variabelen genoemd, en deze namen kunt gebruiken in verdere berekeningen. De volgende vier instructies laat zien dat je meerdere dingen achter elkaar kunt afdrukken: teksten, in de vorm van een string object, baken je af met een dubbel aanhalingsteken "
en R scheidt onderdelen in het resultaat van de cat
instructie met een spatie. Het newline escape karakter \n
gebruik je om een nieuwe regel te forceren.
Een andere manier om een string object te specificeren is m.b.v. het enkele aanhalingsteken '
, maar gebruik de twee soorten aanhalingstekens niet door elkaar heen: "geeft foutmelding' is incorrect, maar "Marthe's fiets" is wel een goede string met een aanhalingsteken er middenin.
De laatste twee R instructies tonen berekeningen met natuurlijke getallen: /
is voor 'gewone deling', waarbij er al dan niet een breuk in de vorm van een floating-pointing getal als resultaat komt. Niet elke breuk kan als een eindig floating-point getal gerepresenteerd worden: in dit geval wordt \(8/6 = 4/3\) maar in 16 decimalen opgeslagen. De operator %/%
is voor 'delen met rest' en %%
is het symbool voor de modulo operator.
\(\phantom{x}\)
We vatten de basale numerieke bewerkingen met getallen samen:
\[\begin{array}{l|c|l}
\textit{bewerking} & \textit{operatie} & \textit{toelichting} \\ \hline\hline
\text{optelling} & x+y & x\text{ en }y\text{ zijn gehele of floating-point getallen.} \\ \hline
\text{verschil} & x-y & x\text{ en }y\text{ zijn gehele of floating-point getallen.} \\ \hline
\text{product} & x*y & x\text{ en }y\text{ zijn gehele of floating-point getallen.} \\ \hline
\text{quotiënt} & x/y & x\text{ en }y\text{ zijn gehele of floating-point getallen.}\\[-2pt]
& & \text{Resultaat is een floating-point getal.} \\ \hline
\text{integer deling} & x\;\%/\%\;y & x\text{ en }y\text{ zijn gehele of floating-point getallen.}\\[-2pt]
& & \text{Resultaat is het grootste gehele getal }\\
& & \text{kleiner dan of gelijk aan quotiënt.} \\ \hline
\text{rest bij deling} & x\;\%\%\;y & x\text{ en }y\text{ zijn gehele getallen.}\\[-2pt]
& & \text{Resultaat is rest bij deling van }x\text{ door }y\text{.} \\ \hline
\text{machtsverheffing} & x \;\mathtt{\hat{\;}} \;y & x\text{ en }y\text{ zijn gehele of floating-point getallen.} \\ \hline
\text{floating-point conversie} & \mathtt{as.double}(x) & \text{converteer de numerieke waarde van }x\\[-2pt]
& & \text{naar een floating-point getal.}\\ \hline
\text{integer conversie} & \mathtt{as.integer}(x) & \text{converteer de numerieke waarde van }x\\[-2pt]
& & \text{naar een geheel getal. Breek de decimale}\\[-2pt]
& & \text{ontwikkeling af en rond niet af.}\\ \hline
\text{absolute waarde} & \mathtt{abs}(x)& \text{Bereken de absolute waarde van }x\text{.} \\ \hline
\text{afronding} & \mathtt{round}(x) & \text{Rond de numerieke waarde van }x\\[-2pt]
& & \text{naar het dichtst bijzijnde gehele getal.} \\
& \mathtt{round}(x, \text{digits=}n) & \text{Rond }x\text{ af op }n\text{ decimalen.}\\ \hline
\text{teken} & \mathtt{sign}(x) & \text{Resultaat is } \left\{ \begin{array}{ll}
-1 & \text{als }x \lt 0 \\ 0 & \text{als }x=0 \\ 1 & \text{als }x\gt 0 \end{array} \right. \\ \hline
\text{faculteit} & \mathtt{factorial}(n) & n! \end{array}\]
\(\phantom{x}\)
Met de daarbij behorende datatypen voor variabelen
\[\begin{array}{l|c|l}
\textit{type} & \textit{voorbeeld} & \textit{toelichting} \\ \hline\hline
\text{integer} & 12 & \text{gehele getallen} \\ \hline
\text{double} & 12.345 & \text{benaderingen van reëapprole getallen in maximaal 16 decimalen} \\ \hline
\text{character} & \text{"Hello"} & \text{collectie van tekens. Een string staat altijd tussen aanhalingstekens} \\ \hline
\text{logical} & \text{TRUE} & \text{uitvoer van een logische test. Kent twee waarden: TRUE of FALSE}\\ \hline
\end{array}\]
Het datatype van een variabele kun je checken met de functie typeof
. Je kunt datatypes converteren met de functies as.double
, as.integer
en as.character
.
Zorg dat de naam van een variabele in een R programma goed te begrijpen is, zodat je de context later snel weer oppikt en door kunt gaan met het verder werken aan je programma.