2.2 Funktioner

Ved at skrive 2+3, a*b eller 2^a anvender vi aritmetiske operatorer på konstanter (2, 3) eller variabler (a, b), og skaber nye R objekter (ved 2^a beregnes potensen \(2^a\)). Ofte vil vi gøre noget som er mere kompliceret end disse enkle operationer, og anvende funktioner, der manipulerer vores data. I R siger vi, at vi “kalder en funktion”, og mener en kommadolinje som

round(pi)

I denne linje er round funktionens navn, og vi har brugt ét argument. Faktisk kan man angive, hvor mange ciffre bag kommaet er tilladt. Funktionen round tager nemlig to argumenter, hvor det første står for det tal, som skal rundes, og det anden indeholder antal ciffre. Som udgangspunkt er det 0 ciffre. For at gøre koden mere læseligt, har det anden argument et navn, “digits”. Det er ikke nødvendigt, at angive navnet, men hjælper, når koden skal læses. Som udgangspunkt antages digits at være lige 0 - det kaldes defaultværdien af argumentet. Man ændrer værdien af digits ved et lighedstegn:

round(pi, digits = 3)

Når vi anvender en funktion på en variabel forbliver variablens indhold uændret, men der skabes et nyt R objekt, nemlig funktionens resultat. Resultates kan igen gemmes i en variabel.

Øvelse 2.4

Hvad får vi ved disse linjer, og hvilke variabler har vi så i hukommelsen?

tre <- round(pi, digits = 0)
round(pi, digits = 3) - tre

2.2.1 Hjælp

Da det er svært at huske alle disse argumenter til alle funktioner, har R indbygget dokumentation. Den kaldes ved spørgsmålstegnet foran funktionens navn. I RStudio vises dokumentationen af en funktion (“hjælp-filen”) i det nederste højre vindu, under fanebladet “Help”.

Øvelse 2.5

Prøv at gætte resultatet af de følgende linier

log10(100)
log2(8)

Kan man også få det ved funktionen log? Læs hjælpen ved at yde kommandoet ?log. Du behøver ikke forestå alt der står der - oftes er R dokumentationen ret nerded, og kunsten bestå i, at finde de relevante dele.