r functions uitleg tutorial

We kunnen R functions toepassen om makkelijk specifieke terugkerende opdrachten uit te voeren.

De syntax voor een functie is <function_name>(<function_input(s)>).

  • Een functie heeft een naam.
  • Een functie gebruikt input.
  • Een functie geeft een resultaat terug, de output.

Dit blog is een onderdeel van een blogserie over R waarin we o.a. ingaan op hoe je R installeert, hoe je in RStudio werkt, verschillende soorten datasets uitleest, data manipuleert met bijvoorbeeld dplyr of data.table, of data visualiseert in bijvoorbeeld een histogram of boxplot.

In dit blog leer je meer over onderstaande R functions:

  • Standaard R functions: dit zijn functies uit packages en functies die standaard binnen R beschikbaar zijn.
  • Zelfgeschreven functies: je kunt zelf functies maken als je meermaals dezelfde bewerking op input wilt uitvoeren om tot een gewenste output te komen.

1. Standaard R functions

Inmiddels zijn er terloops al meerdere functies aan bod gekomen. We bekijken enkele veelgebruikte standaard functies.


  • print() print (toont) een uitkomst:
message <- "Hi there!"

print(message)

re> [1] "Hi there!"

Met vertrouwen waardevolle inzichten halen uit data met R? Bekijk dan onze opleiding R voor data analyse.


  • nchar() berekent het aantal tekens in een tekst:
message <- "Hello!"

nchar(message)
 [1] 6

  • substr() geeft een selectie van tekens in een tekst:
message <- "Hello!"

substr(message, start = 2, stop = 4)
 [1] "ell"

number <- 25.4

as.character(number)
 [1] "25.4"
text_number <- "25.4"

as.numeric(text_number)
 [1] 25.4
  • as.integer() zet een tekst om naar een integer (geheel) getal:
text_number <- "25.4"

as.integer(text_number)
 [1] 25

  • paste() plakt elementen aan elkaar tot 1 tekst:
paste("This", "is", "message", "number", 5)
 [1] "This is message number 5"
  • paste0() plakt elementen zonder spaties aan elkaar tot 1 tekst:
paste0("This", "is", "message", "number", 5)
 [1] "Thisismessagenumber5"

  • c() (combine) maakt een vector:
c(1, 2, 4, 8, 16)
 [1]  1  2  4  8 16

  • seq() (sequence) maakt een vector met een reeks getallen:
seq(from = 1, to = 5)
 [1] 1 2 3 4 5

  • list() maakt een lijst met elementen:
list(1, "text", 2.4, TRUE)
 [[1]]
 [1] 1

 [[2]]
 [1] "text"

 [[3]]
 [1] 2.4

 [[4]]
 [1] TRUE

  • is.na() controleert of iets missend (not available) is:
numbers <- c(11, 21, 19, NA, 46, NA)

is.na(numbers)
 [1] FALSE FALSE FALSE  TRUE FALSE  TRUE

  • round() rond een getal af op een bepaald aantal decimalen:
number <- 25.4457

round(number, digits = 2)
 [1] 25.45

  • sqrt() berekent de vierkantswortel (square root):
number <- 25

sqrt(number)
 [1] 5

  • unique() toont de unieke waarden van elementen in een verzameling:
numbers <- c(2, 1, 2, 3)

unique(numbers)
 [1] 2 1 3

  • sort() sorteert een verzameling elementen:
numbers <- c(2, 1, 2, 3)

sort(numbers)
 [1] 1 2 2 3

  • length() toont het aantal elementen in een verzameling:
numbers <- c(2, 1, 2, 3)

length(numbers)
 [1] 4

  • sum() betekent de som van een verzameling getallen:
numbers <- c(2, 1, 2, 3)

sum(numbers)
 [1] 8

  • mean() berekent het gemiddelde:
numbers <- c(2, 1, 2, 3, 4.2)

mean(numbers)
 [1] 2.44

numbers <- c(2, 1, 2, 3, 4.2)

median(numbers)
 [1] 2

  • min() toont de laagste waarde:
numbers <- c(2, 1, 2, 3, 4.2)

min(numbers)
 [1] 1

  • max() toont de hoogste waarde:
numbers <- c(2, 1, 2, 3, 4.2)

max(numbers)
 [1] 4.2


  • sd() betekent de standaard deviatie:
numbers <- c(2, 1, 2, 3, 4.2)

sd(numbers)
 [1] 1.21161

Je hoeft deze functies niet direct uit je hoofd te kennen.

Je kunt ze altijd opzoeken in documentatie, bijvoorbeeld op rdocumentation.org.


2. Zelfgeschreven R functies

Wanneer je zelf code schrijft die je vaker gebruikt, dan is het verstandig om zelf een functie te maken.

Onderstaand voorbeeld toont een zelfgeschreven functie die 2 getallen optelt:

sum_numbers <- function(number_1, number_2) {
  result <- number_1 + number_2
  return(result)
}

Hierin:

  • Is sum_numbers de naam
  • Heeft de functie 2 inputs (ook wel argumenten of parameters genoemd)
    • number_1 en number_2
  • Binnen de functie wordt de som berekend en in variabele result bewaard
  • De som result wordt teruggegeven met return()

Nu kunnen we de functie (her)gebruiken:

sum_numbers(number_1 = 10, number_2 = 15)
 [1] 25
sum_numbers(number_1 = 5454, number_2 = 64556)
 [1] 70010

voorbeeld r functions zelfgeschreven

Een ander voorbeeld is om met behulp van de stelling van Pythagoras de lengte van de schuine zijde c te berekenen:

calculate_length_side_c <- function(length_side_a, length_side_b) {
  length_side_c <- sqrt(length_side_a^2 + length_side_b^2)
  return(length_side_c)
}

print(calculate_length_side_c(length_side_a = 3, length_side_b = 4))
print(calculate_length_side_c(length_side_a = 3, length_side_b = 5))
print(calculate_length_side_c(length_side_a = 3, length_side_b = 6))
 [1] 5
 [1] 5.830952
 [1] 6.708204

Je ziet hoe makkelijk je met functies je eigen code / logica kunt hergebruiken.


Om te onthouden over R functions

  • Functies
    • Hergebruiken van code
    • Hebben een naam, input en output
  • Standaard functies
    • Altijd beschikbaar vanuit R
    • Gebruik je met syntax function_name>(<function_input(s)>)
    • Voorbeeld: round(25.4454, digits = 2)
    • Zoek op in documentatie, bijvoorbeeld op rdocumentation.org
  • Zelfgeschreven functies
    • Om je eigen code te kunnen hergebruiken
    • Voorbeeld:\
      sum_numbers <- function(number_1, number_2) {result <- number_1 + number_2 return(result)}

Wil jij goed leren werken in R? Tijdens onze Opleiding R leer je alles wat je nodig hebt om zelfstandig analyses uit te voeren in R.

by: