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.
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.
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
Male
Female
Female
Male
Female
Levels:
'Female'
'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' 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".
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.
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.