Introduzione ai fattori in R
In R, possiamo elaborare diversi tipi di variabili. Possiamo anche assumere il fattore come un tipo di variabile che accetta solo un numero limitato di valore assegnato; tale variabile viene anche definita variabile categoriale.
Vantaggi di un fattore
- Può memorizzare sia numeri interi che stringhe
1. Nel caso di numeri interi
data = c(5, 6, 6, 6, 7, 5, 7, 6, 7, 5, 6, 7)
factor_data = factor(data)
factor_data
Produzione
2. Nel caso di stringhe
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"))
y
Produzione
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Produzione
- Molto utile quando le colonne hanno un numero limitato di valori univoci
Nome | Modalità di viaggio |
John | Camion |
Shaw | Auto |
sottovento | Ciclo |
Musan | Bicicletta |
Lozy | Camion |
Riya | Auto |
mij | Ciclo |
Qui abbiamo un numero limitato di valori univoci nella colonna 2.
- Aiuta a correggere le stringhe con errori di battitura (errori di battitura).
Come creare un fattore in R?
Siamo in grado di creare fattori utilizzando i fattori di codice ().
Scopri di più su factor ().
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
Dove,
X è un insieme di dati categorici. Come abbiamo già discusso, dovrebbe essere una stringa o numeri interi.
I livelli sono un set di valori che possono essere presi da X. I livelli contiene tutto il valore univoco disponibile nella colonna (x).
Le etichette come il nome suggeriscono l'etichettatura dei dati disponibili in X.
Ordinato determina se i livelli devono essere ordinati in un ordine particolare.
Esempio 1
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike"))
y
Produzione:
Esempio n. 2
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Produzione:
Nell'esempio 2 possiamo vedere che possiamo definire anche "Livelli".
Ora vediamo di più sui fattori usando Str (y).
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Produzione:
str(y)
Produzione:
Si vede chiaramente che i fattori sono memorizzati come vettori interi e i livelli sono memorizzati come vettore di caratteri e che i singoli elementi sono effettivamente memorizzati come indici.
- Ora vedremo come accedere ai componenti di un fattore
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Produzione:
y(2) # helps to access 2nd element
Produzione:
x(c(3, 4)) # helps to access 3rd and 4th element
Produzione
x(-1) # access all except 1st element
Produzione:
- Ora vedremo come modificare un fattore.
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Produzione:
y(3) = "Truck" #modifty third element
y
Produzione
Aggiunta a un fattore:
y(10) = "Car"
y
Produzione:
Nota che non possiamo assegnare nulla in un fattore che non fa parte dei livelli.
y(4) = "Plane"Warning message:In `(<-.factor`(`*tmp*`, 4, value = "Plane") : invalid factor level, NA generated
Produzione:
In questo esempio possiamo vedere che "Piano" non fa parte del nostro livello, quindi abbiamo ricevuto un messaggio di avviso che dice che "Piano" è un livello di fattore non valido.
Converti i dati in un fattore
I dati sono disponibili in abbondanza ed è sempre difficile scrivere una parola completa nel codice, quindi per questo convertiremo prima i dati in un fattore, quindi convertiremo il fattore in un carattere o numero secondo la nostra convenienza.
Ora lavoriamo su alcuni dati reali. Dove abbiamo 50 osservazioni e i candidati forniscono la loro direzione di lavoro. Come John viaggia verso nord per i suoi doveri di lavoro o Sam viaggia verso sud per i suoi doveri di lavoro.
direction <- c("West", "East", "North", "West", "South", "East", "South", "East", "South", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West")
direction.factor = factor(direction)
direction.factor
Produzione:
Livelli: est nord sud ovest
Ora, se vogliamo convertire il fattore in un vettore di caratteri:
Useremo il codice as.character ().
as.character(direction.factor)
Produzione:
Oppure vogliamo convertire il fattore in un vettore numerico:
Useremo il codice as.numeric ().
as.numeric(direction.factor)
Produzione:
Articoli consigliati
Questa è una guida ai fattori in R. Qui discutiamo dell'introduzione, Vantaggi di un fattore, Come creare un fattore in R insieme agli Output. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–
- Spark SQL Dataframe
- R Tipi di dati
- Database multidimensionale
- Pipeline di dati AWS