Fattori R


Fattori

I fattori vengono utilizzati per classificare i dati. Esempi di fattori sono:

  • Demografia: maschio/femmina
  • Musica: Rock, Pop, Classica, Jazz
  • Allenamento: forza, resistenza

Per creare un fattore, usa la factor()funzione e aggiungi un vettore come argomento:

Esempio

# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

# Print the factor
music_genre

Risultato:

[1] Jazz    Rock    Classic Classic Pop     Jazz    Rock    Jazz
Levels: Classic Jazz Pop Rock

Puoi vedere dall'esempio sopra che il fattore ha quattro livelli (categorie): Classic, Jazz, Pop e Rock.

Per stampare solo i livelli, utilizzare la levels()funzione:

Esempio

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

levels(music_genre)

Risultato:

[1] "Classic" "Jazz"    "Pop"     "Rock"   

Puoi anche impostare i livelli, aggiungendo l' levelsargomento all'interno della factor()funzione:

Esempio

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))

levels(music_genre)

Risultato:

[1] "Classic" "Jazz"    "Pop"     "Rock"    "Other"

Lunghezza del fattore

Usa la length()funzione per scoprire quanti elementi ci sono nel fattore:

Esempio

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

length(music_genre)

Risultato:

[1] 8

Fattori di accesso

Per accedere alle voci di un fattore, fare riferimento al numero di indice, utilizzando le []parentesi:

Esempio

Accedi al terzo elemento:

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3]

Risultato:

[1] Classic
Levels: Classic Jazz Pop Rock

Modifica il valore dell'articolo

Per modificare il valore di un articolo specifico, fare riferimento al numero di indice:

Esempio

Modifica il valore del terzo elemento:

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3] <- "Pop"

music_genre[3]

Risultato:

[1] Pop
Levels: Classic Jazz Pop Rock

Si noti che non è possibile modificare il valore di un articolo specifico se non è già specificato nel fattore. L'esempio seguente produrrà un errore:

Esempio

Cercando di modificare il valore del terzo articolo ("Classic") in un articolo che non esiste/non è predefinito ("Opera"):

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3] <- "Opera"

music_genre[3]

Risultato:

Warning message:
In `[<-.factor`(`*tmp*`, 3, value = "Opera") :
  invalid factor level, NA generated

Tuttavia, se l'hai già specificato all'interno levelsdell'argomento, funzionerà:

Esempio

Modifica il valore del terzo elemento:

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]

Risultato:

[1] Opera
Levels: Classic Jazz Pop Rock Opera