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 levelsargument 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 levelsargument 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