Come convertire un fattore in numerico in r (con esempi)


Possiamo usare la seguente sintassi per convertire un vettore fattoriale in un vettore numerico in R:

 numeric_vector <- as. numeric (as. character (factor_vector))

Dobbiamo prima convertire il vettore dei fattori in un vettore di caratteri, quindi in un vettore numerico. Ciò garantisce che il vettore numerico contenga i valori numerici effettivi anziché i livelli dei fattori.

Questo tutorial fornisce diversi esempi di utilizzo pratico di questa funzione.

Esempio 1: convertire un vettore fattore in numerico

Il codice seguente mostra come convertire un vettore fattoriale in un vettore numerico:

 #define factor vector
factor_vector <- factor(c(1, 5, 7, 8))

#convert factor vector to numeric vector
numeric_vector <- as. numeric (as. character (factor_vector))

#view class
class(numeric_vector)

[1] "digital"

Esempio 2: convertire una colonna fattore in numerica

Il codice seguente mostra come convertire una colonna specifica in un frame di dati fattoriali in numerico:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
b = c(28, 34, 35, 36))

#convert column 'a' from factor to numeric
df$a <- as. numeric (as. character (df$a))

#view new data frame
df

  ab
1 1 28
2 5 34
3 7 35
4 8 36

#confirm class of numerical vector
class(df$a)

[1] "digital"

Esempio 3: convertire colonne con più fattori in numeriche

Il codice seguente mostra come convertire tutte le colonne dei fattori in un frame di dati dei fattori in valori numerici:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
                 b = factor(c(2, 3, 4, 5)),
                 c = c('A', 'B', 'C', 'D'),
                 d = c(45, 56, 54, 57))

#display classes of each column
sapply(df, class)

       abcd
"factor" "factor" "character" "numeric" 

#identify all factor columns
x <- sapply (df, is. factor )

#convert all factor columns to numeric
df[, x] <- as. data . frame ( apply (df[, x], 2, as.numeric ))

#display classes of each column
sapply (df, class)

        abcd
"numeric" "numeric" "character" "numeric"

Questo codice ha apportato le seguenti modifiche alle colonne del frame di dati:

  • Colonna a: Dal postino al digitale
  • Colonna b: Dal postino al digitale
  • Colonna c: Invariato (poiché era un carattere)
  • Colonna d: invariata (poiché era già numerica)

Utilizzando le funzioni apply() e sapply() , siamo riusciti a convertire solo le colonne fattoriali in colonne numeriche e lasciare invariate tutte le altre colonne.

Risorse addizionali

Come convertire un carattere in un fattore in R
Come convertire un fattore in un carattere in R
Come convertire un carattere in un timestamp in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *