R functions: duidelijke uitleg over hoe je werkt met functies in R (2024)

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.4as.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.4457round(number, digits = 2)
 [1] 25.45
  • sqrt() berekent de vierkantswortel (square root):
number <- 25sqrt(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

R functions: duidelijke uitleg over hoe je werkt met functies in R (1)

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.

R functions: duidelijke uitleg over hoe je werkt met functies in R (2024)
Top Articles
Latest Posts
Article information

Author: Cheryll Lueilwitz

Last Updated:

Views: 6508

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Cheryll Lueilwitz

Birthday: 1997-12-23

Address: 4653 O'Kon Hill, Lake Juanstad, AR 65469

Phone: +494124489301

Job: Marketing Representative

Hobby: Reading, Ice skating, Foraging, BASE jumping, Hiking, Skateboarding, Kayaking

Introduction: My name is Cheryll Lueilwitz, I am a sparkling, clean, super, lucky, joyous, outstanding, lucky person who loves writing and wants to share my knowledge and understanding with you.