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
NomeModalità di viaggio
JohnCamion
ShawAuto
sottoventoCiclo
MusanBicicletta
LozyCamion
RiyaAuto
mijCiclo

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ù–

  1. Spark SQL Dataframe
  2. R Tipi di dati
  3. Database multidimensionale
  4. Pipeline di dati AWS

Categoria: