Comment convertir un facteur en numérique dans R (avec des exemples)



Nous pouvons utiliser la syntaxe suivante pour convertir un vecteur de facteurs en vecteur numérique dans R :

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

Il faut d’abord convertir le vecteur facteur en vecteur de caractères, puis en vecteur numérique. Cela garantit que le vecteur numérique contient les valeurs numériques réelles au lieu des niveaux de facteurs.

Ce tutoriel fournit plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : Convertir un vecteur de facteur en numérique

Le code suivant montre comment convertir un vecteur de facteurs en vecteur numérique :

#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] "numeric"

Exemple 2 : Convertir une colonne de facteur en numérique

Le code suivant montre comment convertir une colonne spécifique dans un bloc de données de facteur en numérique :

#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

  a  b
1 1 28
2 5 34
3 7 35
4 8 36

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

[1] "numeric"

Exemple 3 : Convertir plusieurs colonnes de facteur en numérique

Le code suivant montre comment convertir toutes les colonnes de facteurs d’un bloc de données de facteurs en valeurs numériques :

#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)

       a           b           c           d 
"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)

        a           b           c           d 
"numeric"   "numeric" "character"   "numeric" 

Ce code a apporté les modifications suivantes aux colonnes du bloc de données :

  • Colonne a : Du facteur au numérique
  • Colonne b : Du facteur au numérique
  • Colonne c : Inchangé (puisqu’il s’agissait d’un personnage)
  • Colonne d : Inchangée (puisqu’elle était déjà numérique)

En utilisant les fonctions apply() et sapply() , nous avons pu convertir uniquement les colonnes de facteurs en colonnes numériques et laisser toutes les autres colonnes inchangées.

Ressources additionnelles

Comment convertir un caractère en facteur dans R
Comment convertir un facteur en caractère dans R
Comment convertir un caractère en horodatage dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *