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