Comment convertir des variables catégorielles en numériques dans R



Vous pouvez utiliser l’une des méthodes suivantes pour convertir une variable catégorielle en variable numérique dans R :

Méthode 1 : convertir une variable catégorielle en numérique

df$var1 <- unclass(df$var1)

Méthode 2 : convertir plusieurs variables catégorielles en valeurs numériques

df[, c('var1', 'var2')] <- sapply(df[, c('var1', 'var2')], unclass)

Méthode 3 : convertir toutes les variables catégorielles en valeurs numériques

df[sapply(df, is.factor)] <- data.matrix(df[sapply(df, is.factor)])

Les exemples suivants montrent comment utiliser chaque méthode avec le bloc de données suivant :

#create data frame with some categorical variables
df <- data.frame(team=as.factor(c('A', 'B', 'C', 'D')),
                 conf=as.factor(c('AL', 'AL', 'NL', 'NL')),
                 win=as.factor(c('Yes', 'No', 'No', 'Yes')),
                 points=c(122, 98, 106, 115))

#view data frame
df

  team conf win points
1    A   AL Yes    122
2    B   AL  No     98
3    C   NL  No    106
4    D   NL Yes    115

Méthode 1 : convertir une variable catégorielle en numérique

Le code suivant montre comment convertir une variable catégorielle dans un bloc de données en variable numérique :

#convert 'team' variable to numeric
df$team <- unclass(df$team)

#view updated data frame
df

  team conf win points
1    1   AL Yes    122
2    2   AL  No     98
3    3   NL  No    106
4    4   NL Yes    115

Notez que les valeurs de la variable « équipe » ont été converties en valeurs numériques.

Méthode 2 : convertir plusieurs variables catégorielles en valeurs numériques

Le code suivant montre comment convertir plusieurs variables catégorielles dans un bloc de données en variables numériques :

#convert 'team' and 'win' variables to numeric
df[, c('team', 'win')] <- sapply(df[, c('team', 'win')], unclass)

#view updated data frame
df

  team conf win points
1    1   AL   2    122
2    2   AL   1     98
3    3   NL   1    106
4    4   NL   2    115

Notez que les valeurs des variables « équipe » et « win » ont été converties en valeurs numériques.

Méthode 3 : convertir toutes les variables catégorielles en valeurs numériques

Le code suivant montre comment convertir toutes les variables catégorielles d’un bloc de données en variables numériques :

#convert all categorical variables to numeric
df[sapply(df, is.factor)] <- data.matrix(df[sapply(df, is.factor)])

#view updated data frame
df

  team conf win points
1    1    1   2    122
2    2    1   1     98
3    3    2   1    106
4    4    2   2    115

Notez que les valeurs de chacune des variables catégorielles du bloc de données ont été converties en valeurs numériques.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres conversions courantes dans R :

Comment convertir une date en numérique dans R
Comment convertir un caractère en facteur dans R
Comment convertir un facteur en caractère dans R

Ajouter un commentaire

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