Ga naar hoofdinhoud

Factoren in R-tutorial

Leer over de factor-functie in R, met een voorbeeld, en de structuur, volgorde van levels, het hernoemen van levels en tot slot het ordenen van categorische waarden.
Bijgewerkt 2 okt 2026  · 5 min lezen

Verken met AI

ChatGPTClaudePerplexity
banner

Factoren zijn variabelen in R die categorische waarden aannemen en data opslaan in levels. Het primaire gebruik van deze functie zie je in data-analyse en specifiek in statistische analyse. Ook helpt het om redundantie te verminderen en veel geheugenruimte te besparen.

Let op: Een categorische variabele is een variabele die waarden aanneemt op basis van labels of namen. Zo kan de bloedgroep van een mens A, B, AB of O zijn.

factor-functie

Gebruik: Categoriseer data met een klein aantal waarden.
Parameters: factor(v): v kan een vector met waarden zijn.

Laten we een voorbeeld van een factor in actie bekijken.

Hieronder zie je code met twee categorische waarden, namelijk "Male" en "Female", ook wel factorwaarden genoemd.

gender <- c("Male","Female","Female","Male","Female")

Laten we een factor voor gender maken waarbij 'factor(gender)' wordt gebruikt en opgeslagen in een variabele 'gender.factor'.

gender.factor <- factor(gender)
gender.factor
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Levels:
  1. 'Female'
  2. 'Male'

Bovenstaande code geeft de volgende output:

Male Female Female Male Female
Levels:
'Female' 'Male'

Je ziet hierboven dat de waarden hetzelfde worden afgedrukt als in de invoervector. Daarnaast zijn de 'Levels' 'Female' en 'Male' alfabetisch gesorteerd.

Structuur van de factor-functie

Bekijk de structuur van de factor-functie met 'str(gender.factor)' in de onderstaande code.

str(gender.factor)
 Factor w/ 2 levels "Female","Male": 2 1 1 2 1 
Factor w/ 2 levels "Female","Male": 2 1 1 2 1

De bovenstaande output laat zien dat er een factor met 2 levels is. factor zet de karaktervector gender om in een vector met gehele waarden. "Female" is het eerste level, gecodeerd als 1, terwijl "Male" het tweede level is, gecodeerd als 2.

Het primaire doel van de omzetting van karakter naar numeriek is ook dat de categorieën herhaald kunnen voorkomen; herhaling is redundant en kan veel geheugen innemen. Door factor te gebruiken verminder je die last en bespaar je geheugenruimte.

Volgorde van levels wijzigen

Laten we de volgorde van de levels wijzigen, zodat "Female" level 2 wordt en "Male" level 1.

We maken een nieuwe factor voor gender door de levels van "Male" en "Female" te wijzigen en als vector door te geven aan "levels". De resulterende output slaan we op in de variabele "gender.factor2".

gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Levels:
  1. 'Male'
  2. 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

'gender.factor2' wordt afgedrukt, samen met de structuur via 'str(gender.factor2)', waar de volgende wijzigingen te zien zijn.

Male Female Female Male Female
 Levels:
'Male' 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

De bovenstaande code geeft de output waarin de codering van "Male" 1 is en "Female" 2. Dat is anders dan bij 'gender.factor', waar het omgekeerd was.

Levels van een factor hernoemen

Laten we de namen van de vectorwaarden in de input wijzigen door het gebruikelijke 'levels' als eerste argument te specificeren met de waarden "Male" en "Female" en de gewenste nieuwe vectorwaarden via 'labels' als tweede argument met respectievelijk "Gen_Male" en "Gen_Female".

factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))
  1. Gen_Male
  2. Gen_Female
  3. Gen_Female
  4. Gen_Male
  5. Gen_Female
Levels:
  1. 'Gen_Male'
  2. 'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
 Levels:
'Gen_Male' 'Gen_Female'

De bovenstaande code geeft de output waarin de naam voor "Male" is gewijzigd naar "Gen_Male" en voor "Female" naar "Gen_Female".

Een categorische variabele ordenen

Bekijk een ander voorbeeld met ordinale categorische waarden waarbij de volgorde ertoe doet. Voor de maat van een broek kan er bijvoorbeeld een maat zijn die als Large wordt beschouwd als "L", Extra Large als "XL" en Extra Extra Large als "XXL", in oplopende volgorde gerangschikt. De onderstaande code bevat de verzameling vectorinvoer van de tekens "L", "XL" en "XXL" en slaat die op in 'pant'. 'pant.factor' is de variabele met levels in oplopende volgorde als 'levels = c("L", "XL", "XXL")' en tot slot 'ordered = TRUE', wat het sorteren mogelijk maakt zoals jij het nodig hebt.

pant <- c("XL","L","XL","XXL","L","XL")
pant.factor <- factor(pant,ordered = TRUE,levels = c("L","XL","XXL"))
pant.factor
pant.factor[1] > pant.factor[2]
  1. XL
  2. L
  3. XL
  4. XXL
  5. L
  6. XL
Levels:
  1. 'L'
  2. 'XL'
  3. 'XXL'

TRUE

XL L XL XXL L XL
 Levels:'L'< 'XL' < 'XXL'
TRUE

De bovenstaande output laat eerst de normale output zien, waar alle vectorwaarden (XL, L, XL, XXL, L, XL) worden afgedrukt met 'pant.factor'. De levels van de vectorwaarden 'L' < 'XL' < 'XXL' zijn in oplopende volgorde gerangschikt en worden in de console afgedrukt. Ook vergelijkt 'pant.factor[1] > pant.factor[2]' of "XL" groter is dan "L", wat resulteert in TRUE.

Gefeliciteerd

Gefeliciteerd, je bent aan het einde van deze tutorial gekomen!

In deze tutorial heb je de factor-functie in R behandeld, met een voorbeeld, en de structuur, volgorde van levels, het hernoemen van levels en tot slot het ordenen van categorische waarden.

Wil je meer leren over R? Volg dan DataCamp's Introduction to R-cursus.

Bekijk ook onze tutorial over Functies gebruiken in R.
 

Onderwerpen
R
Data Science

R-cursussen

Cursus

Introductie tot R

4 uur
3.1M
Beheers de basis van data-analyse in R, inclusief vectors, lists en data frames, en oefen met echte datasets.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken