R -factoren
Factoren
Factoren worden gebruikt om gegevens te categoriseren. Voorbeelden van factoren zijn:
- Demografie: man/vrouw
- Muziek: Rock, Pop, Klassiek, Jazz
- Training: kracht, uithoudingsvermogen
Om een factor te maken, gebruik je de factor()
functie en voeg je een vector toe als argument:
Voorbeeld
# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
# Print the factor
music_genre
Resultaat:
[1] Jazz Rock Classic Classic Pop Jazz Rock Jazz Levels: Classic Jazz Pop Rock
U kunt aan het bovenstaande voorbeeld zien dat de factor vier niveaus (categorieën) heeft: Klassiek, Jazz, Pop en Rock.
Gebruik de levels()
functie om alleen de niveaus af te drukken:
Voorbeeld
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
levels(music_genre)
Resultaat:
[1] "Classic" "Jazz" "Pop" "Rock"
U kunt ook de niveaus instellen door het levels
argument in de
factor()
functie toe te voegen:
Voorbeeld
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))
levels(music_genre)
Resultaat:
[1] "Classic" "Jazz" "Pop" "Rock" "Other"
Factorlengte
Gebruik de length()
functie om erachter te komen hoeveel items er in de factor zitten:
Voorbeeld
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
length(music_genre)
Resultaat:
[1] 8
Toegangsfactoren
Om toegang te krijgen tot de items in een factor, raadpleegt u het indexnummer []
tussen haakjes:
Voorbeeld
Toegang tot het derde item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3]
Resultaat:
[1] Classic Levels: Classic Jazz Pop Rock
Artikelwaarde wijzigen
Raadpleeg het indexnummer om de waarde van een specifiek item te wijzigen:
Voorbeeld
Wijzig de waarde van het derde item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3] <- "Pop"
music_genre[3]
Resultaat:
[1] Pop Levels: Classic Jazz Pop Rock
Houd er rekening mee dat u de waarde van een specifiek item niet kunt wijzigen als dit nog niet in de factor is gespecificeerd. Het volgende voorbeeld zal een fout opleveren:
Voorbeeld
Proberen om de waarde van het derde item ("Classic") te veranderen in een item dat niet bestaat/niet vooraf gedefinieerd is ("Opera"):
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"))
music_genre[3] <- "Opera"
music_genre[3]
Resultaat:
Warning message: In `[<-.factor`(`*tmp*`, 3, value = "Opera") : invalid factor level, NA generated
Als u het echter al in het levels
argument hebt opgegeven, werkt het:
Voorbeeld
Wijzig de waarde van het derde item:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz",
"Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock",
"Opera"))
music_genre[3] <- "Opera"
music_genre[3]
Resultaat:
[1] Opera Levels: Classic Jazz Pop Rock Opera