[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
vettori
fattori
liste
matrici
array
dataframe
I fattori sono una tipologia di dato peculiare e per quanto simile a semplici characters
in realtà sono un tipo di vettore integer
con delle proprietà aggiuntive.
I fattori si possono creare sia convertendo un vettore character attraverso il comando as.factor()
che creando esplicitamente un fattore attraverso il comando factor()
[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
In pratica assegnano un’etichetta ad un valore numerico intero:
[1] 2 2 1 1 3 3
[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
Questo non vale per i vettori character!
I fattori permettono di avere dei livelli levels()
come metadati, a prescindere da quali siano effettivamente presenti nel vettore
[1] "ciao" "hello" "hola"
[1] hello hello hola hola
Levels: ciao hello hola
E’ possibile però eslcudere i livelli non più utili attraverso il comando droplevels()
E’ possibile anche rinominare i livelli del fattore
[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
# creo un altro fattore "my_fact_lev" identico a "my_fact"
my_fact_lev = my_fact
my_fact_lev == my_fact
[1] TRUE TRUE TRUE TRUE TRUE TRUE
# rinomino i livelli del fattore
levels(my_fact_lev) = c("italiano","inglese","spagnolo")
my_fact_lev
[1] inglese inglese italiano italiano spagnolo spagnolo
Levels: italiano inglese spagnolo
[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
E’ possibile sia riordinare che rinominare i livelli di un fattore attraverso la funzione factor()
[1] hello hello ciao ciao hola hola
Levels: ciao hello hola
[1] 2 2 1 1 3 3
[1] hello hello ciao ciao hola hola
Levels: hello ciao hola
[1] 1 1 2 2 3 3
new_fact2 = factor(my_fact, levels = c("hello","ciao","hola"),
labels = c("inglese","italiano","spagnolo"))
new_fact2
[1] inglese inglese italiano italiano spagnolo spagnolo
Levels: inglese italiano spagnolo
Ricordate: l’argomento levels
dentro la funzione factor()
serve a riordinare i livelli del fattore, mentre la funzione levels()
li rinomina non riordina!
Un sottotipo di fattori sono gli ordered factors che corrispondo alle variabili ordinali, ovvero dove i livelli sono ordinati in modo crescente:
Aprite e tenete aperto questo link:
https://etherpad.wikimedia.org/p/arca-corsoR