Vai al contenuto principale

Fattori in R: tutorial

Scopri la funzione factor in R, con un esempio, la sua struttura, l’ordine dei livelli, la rinomina dei livelli e, infine, l’ordinamento dei valori categoriali.
Aggiornato 29 set 2026  · 5 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity
banner

I factor sono variabili in R che prendono variabili categoriali e memorizzano i dati in livelli. L’uso principale di questa funzione si vede nell’analisi dei dati e, in particolare, nell’analisi statistica. Inoltre, aiuta a ridurre la ridondanza dei dati e a risparmiare molto spazio in memoria.

Nota: Una variabile categoriale è una variabile che assume valori basati su etichette o nomi. Per esempio, il gruppo sanguigno di una persona può essere A, B, AB o O.

funzione factor

Uso: Categorizzare dati con un numero ridotto di valori.
Parametri: factor(v): v può essere un vettore di valori.

Vediamo un esempio di factor in azione.

Qui sotto trovi il codice con due variabili categoriali, ovvero "Male" e "Female", chiamati anche valori del factor.

gender <- c("Male","Female","Female","Male","Female")

Creiamo un factor per gender usando 'factor(gender)' e salviamolo in una variabile chiamata 'gender.factor'.

gender.factor <- factor(gender)
gender.factor
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Livelli:
  1. 'Female'
  2. 'Male'

Il codice sopra fornisce il seguente output:

Male Female Female Male Female
Levels:
'Female' 'Male'

Come puoi vedere, i valori sono stampati come nel vettore di input. Inoltre, i 'Levels', ossia 'Female' e 'Male', sono ordinati alfabeticamente.

Struttura della funzione factor

Esaminiamo la struttura della funzione factor usando 'str(gender.factor)' nel codice seguente.

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

L’output mostra che c’è un factor con 2 livelli. factor converte il vettore di caratteri gender in un vettore di valori interi. "Female" è il primo livello codificato come 1, mentre "Male" è il secondo livello, codificato come 2.

Lo scopo principale della codifica da carattere a numerico è che le categorie possono ripetersi, rendendo ridondanti i dati e occupando molta memoria. Usare i factor riduce questo carico e fa risparmiare spazio in memoria.

Modificare l’ordine dei livelli

Cambiamo l’ordine dei livelli, così "Female" diventa 2 e "Male" 1.

Creiamo un nuovo factor per gender cambiando i livelli di "Male" e "Female" passandoli come input vettoriale a "levels". Infine, salviamo l’output risultante nella variabile chiamata "gender.factor2".

gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Livelli:
  1. 'Male'
  2. 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

'gender.factor2' viene stampato insieme alla sua struttura tramite 'str(gender.factor2)', dove si possono vedere le seguenti modifiche.

Male Female Female Male Female
 Levels:
'Male' 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

Il codice sopra mostra un output in cui la codifica di "Male" è 1 e quella di "Female" è 2. È diverso da 'gender.factor', dove era l’opposto.

Rinominare i livelli di un factor

Cambiamo il nome dei valori del vettore in input specificando l’uso di 'levels' come primo argomento con i valori "Male" e "Female" e i valori attesi rinominati usando 'labels' come secondo argomento con "Gen_Male" e "Gen_Female" rispettivamente.

factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))
  1. Gen_Male
  2. Gen_Female
  3. Gen_Female
  4. Gen_Male
  5. Gen_Female
Livelli:
  1. 'Gen_Male'
  2. 'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
 Levels:
'Gen_Male' 'Gen_Female'

Il codice sopra produce un output in cui il nome "Male" diventa "Gen_Male" e "Female" diventa "Gen_Female".

Ordinare una variabile categoriale

Vediamo un esempio diverso con valori categoriali ordinali, dove l’ordine conta. Ad esempio, per la taglia di un paio di pantaloni, ci possono essere taglie considerate Large come "L", Extra Large come "XL" ed Extra extra Large come "XXL" disposte in ordine crescente. Il codice seguente contiene la raccolta del vettore di caratteri "L", "XL" e "XXL" salvata in 'pant'. 'pant.factor' è la variabile con il parametro che contiene i livelli in ordine crescente come 'levels = c("L", "XL", "XXL")' e infine 'ordered = TRUE', che rende possibile l’ordinamento secondo le tue esigenze.

pant <- c("XL","L","XL","XXL","L","XL")
pant.factor <- factor(pant,ordered = TRUE,levels = c("L","XL","XXL"))
pant.factor
pant.factor[1] > pant.factor[2]
  1. XL
  2. L
  3. XL
  4. XXL
  5. L
  6. XL
Livelli:
  1. 'L'
  2. 'XL'
  3. 'XXL'

TRUE

XL L XL XXL L XL
 Levels:'L'< 'XL' < 'XXL'
TRUE

L’output mostra dapprima l’output normale in cui tutti i valori del vettore (XL, L, XL, XXL, L, XL) vengono stampati usando 'pant.factor'. I livelli dei valori del vettore 'L' < 'XL' < 'XXL' sono disposti in ordine crescente, come stampato in console. Inoltre, 'pant.factor[1] > pant.factor[2]' confronta se "XL" è maggiore di "L", e il risultato è TRUE.

Congratulazioni

Congratulazioni, sei arrivato alla fine di questo tutorial!

In questo tutorial hai visto la funzione factor in R, con un esempio, la sua struttura, l’ordine dei livelli, la rinomina dei livelli e, infine, l’ordinamento dei valori categoriali.

Se vuoi imparare di più su R, segui il corso di DataCamp Introduction to R.

Dai un’occhiata al nostro tutorial su Come usare le funzioni in R.
 

Argomenti
R
Data Science

Corsi R

Corso

Introduzione a R

4 ore
3.1M
Impara le basi dell'analisi dei dati in R, compresi vettori, liste e data frame, e fai pratica con R con set di dati reali.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro