Découvrez la fonction factor en R, avec un exemple, sa structure, l’ordre des niveaux, le renommage des niveaux et, enfin, le tri des valeurs catégorielles.
Les facteurs sont un type de variable en R qui représente des variables catégorielles et stocke les données sous forme de niveaux. On les utilise principalement en analyse de données, et plus précisément en statistique. Ils permettent aussi de réduire la redondance et d’économiser de la mémoire.
Remarque : une variable catégorielle prend des valeurs définies par des étiquettes ou des noms. Par exemple, le groupe sanguin d’une personne peut être A, B, AB ou O.
Fonction factor
Usage : catégoriser des données comportant un nombre limité de valeurs. Paramètres : factor(v) : v peut être un vecteur de valeurs.
Voyons un exemple d’utilisation d’un facteur.
Le code ci-dessous contient deux variables catégorielles, « Male » et « Female », également appelées valeurs de facteur.
gender <- c("Male","Female","Female","Male","Female")Propulsé par
Créons un facteur pour le genre avec 'factor(gender)' et stockons-le dans une variable appelée 'gender.factor'.
gender.factor <- factor(gender)
gender.factor
Propulsé par
Male
Female
Female
Male
Female
Niveaux :
'Female'
'Male'
Le code ci-dessus produit la sortie suivante :
Male Female Female Male Female
Levels:'Female''Male'Propulsé par
Vous pouvez constater que les valeurs sont imprimées comme dans le vecteur d’entrée. Par ailleurs, les « Levels » — « Female » et « Male » — sont triés par ordre alphabétique.
Structure de la fonction factor
Examinons la structure du facteur en utilisant 'str(gender.factor)' dans le code ci-dessous.
Factor w/2 levels "Female","Male":21121Propulsé par
Factor w/2 levels "Female","Male":21121Propulsé par
La sortie indique un facteur à 2 niveaux. factor convertit le vecteur de caractères 'gender' en un vecteur d’entiers. « Female » est le premier niveau, encodé en 1, tandis que « Male » est le second niveau, encodé en 2.
La conversion de caractères en numériques a pour but de représenter des catégories potentiellement répétées de manière compacte, ce qui évite la redondance et économise de la mémoire. L’usage des facteurs allège donc significativement l’empreinte mémoire.
Modifier l’ordre des niveaux
Modifions l’ordre des niveaux pour que « Female » vaille 2 et « Male » vaille 1.
Créons un nouveau facteur pour le genre en changeant les niveaux de « Male » et « Female » en les passant en vecteur à l’argument "levels". Le résultat est stocké dans la variable "gender.factor2".
gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)Propulsé par
Male
Female
Female
Male
Female
Niveaux :
'Male'
'Female'
Factor w/2 levels "Male","Female":12212Propulsé par
'gender.factor2' est affiché, ainsi que sa structure via 'str(gender.factor2)', montrant les changements suivants.
Male Female Female Male Female
Levels:'Male''Female'
Factor w/2 levels "Male","Female":12212Propulsé par
On obtient un encodage où « Male » = 1 et « Female » = 2. C’est l’inverse de 'gender.factor' dans l’exemple précédent.
Renommer les niveaux d’un facteur
Changeons le libellé des valeurs d’entrée en utilisant l’argument 'levels' comme premier paramètre, avec « Male » et « Female », puis 'labels' comme second paramètre pour définir les nouveaux noms « Gen_Male » et « Gen_Female ».
factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))Propulsé par
Gen_Male
Gen_Female
Gen_Female
Gen_Male
Gen_Female
Niveaux :
'Gen_Male'
'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
Levels:'Gen_Male''Gen_Female'Propulsé par
Le code ci-dessus renomme « Male » en « Gen_Male » et « Female » en « Gen_Female ».
Ordonner une variable catégorielle
Voyons un autre exemple avec des valeurs catégorielles ordinales, pour lesquelles l’ordre a du sens. Par exemple, pour une taille de pantalon, on peut avoir L (Large), XL (Extra Large) et XXL (Extra extra Large) dans l’ordre croissant. Le code ci-dessous crée un vecteur de caractères « L », « XL » et « XXL » stocké dans 'pant'. La variable 'pant.factor' définit les niveaux dans l’ordre croissant via 'levels = c("L", "XL", "XXL")' et 'ordered = TRUE' pour permettre les comparaisons selon cet ordre.
XL L XL XXL L XL
Levels:'L'<'XL'<'XXL'TRUEPropulsé par
La sortie affiche d’abord les valeurs du vecteur (XL, L, XL, XXL, L, XL) via 'pant.factor'. Les niveaux 'L' < 'XL' < 'XXL' sont indiqués dans l’ordre croissant. Ensuite, 'pant.factor[1] > pant.factor[2]' vérifie si « XL » est supérieur à « L », ce qui renvoie TRUE.
Félicitations
Félicitations, vous êtes arrivé au bout de ce tutoriel !
Dans ce tutoriel, vous avez exploré la fonction factor en R, avec un exemple, sa structure, l’ordre des niveaux, le renommage des niveaux, et enfin le tri de valeurs catégorielles.
Pour aller plus loin en R, suivez le cours Introduction to R de DataCamp.
Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Gagnez en confiance dans la régression par les MCO en maîtrisant ses fondements théoriques. Découvrez comment réaliser des mises en œuvre simples dans Excel, R et Python.
Poursuivez votre parcours pour devenir un ninja de R en vous familiarisant avec les instructions conditionnelles, les boucles et les fonctions vectorielles.
Les facteurs sont un type de variable en R qui représente des variables catégorielles et stocke les données sous forme de niveaux. On les utilise principalement en analyse de données, et plus précisément en statistique. Ils permettent aussi de réduire la redondance et d’économiser de la mémoire.
Remarque : une variable catégorielle prend des valeurs définies par des étiquettes ou des noms. Par exemple, le groupe sanguin d’une personne peut être A, B, AB ou O.
Fonction factor
Usage : catégoriser des données comportant un nombre limité de valeurs.
Paramètres : factor(v) : v peut être un vecteur de valeurs.
Voyons un exemple d’utilisation d’un facteur.
Le code ci-dessous contient deux variables catégorielles, « Male » et « Female », également appelées valeurs de facteur.
Créons un facteur pour le genre avec 'factor(gender)' et stockons-le dans une variable appelée 'gender.factor'.
Niveaux :
Le code ci-dessus produit la sortie suivante :
Vous pouvez constater que les valeurs sont imprimées comme dans le vecteur d’entrée. Par ailleurs, les « Levels » — « Female » et « Male » — sont triés par ordre alphabétique.
Structure de la fonction factor
Examinons la structure du facteur en utilisant 'str(gender.factor)' dans le code ci-dessous.
La sortie indique un facteur à 2 niveaux. factor convertit le vecteur de caractères 'gender' en un vecteur d’entiers. « Female » est le premier niveau, encodé en 1, tandis que « Male » est le second niveau, encodé en 2.
La conversion de caractères en numériques a pour but de représenter des catégories potentiellement répétées de manière compacte, ce qui évite la redondance et économise de la mémoire. L’usage des facteurs allège donc significativement l’empreinte mémoire.
Modifier l’ordre des niveaux
Modifions l’ordre des niveaux pour que « Female » vaille 2 et « Male » vaille 1.
Créons un nouveau facteur pour le genre en changeant les niveaux de « Male » et « Female » en les passant en vecteur à l’argument "levels". Le résultat est stocké dans la variable "gender.factor2".
Niveaux :
'gender.factor2' est affiché, ainsi que sa structure via 'str(gender.factor2)', montrant les changements suivants.
On obtient un encodage où « Male » = 1 et « Female » = 2. C’est l’inverse de 'gender.factor' dans l’exemple précédent.
Renommer les niveaux d’un facteur
Changeons le libellé des valeurs d’entrée en utilisant l’argument 'levels' comme premier paramètre, avec « Male » et « Female », puis 'labels' comme second paramètre pour définir les nouveaux noms « Gen_Male » et « Gen_Female ».
Niveaux :
Le code ci-dessus renomme « Male » en « Gen_Male » et « Female » en « Gen_Female ».
Ordonner une variable catégorielle
Voyons un autre exemple avec des valeurs catégorielles ordinales, pour lesquelles l’ordre a du sens. Par exemple, pour une taille de pantalon, on peut avoir L (Large), XL (Extra Large) et XXL (Extra extra Large) dans l’ordre croissant. Le code ci-dessous crée un vecteur de caractères « L », « XL » et « XXL » stocké dans 'pant'. La variable 'pant.factor' définit les niveaux dans l’ordre croissant via 'levels = c("L", "XL", "XXL")' et 'ordered = TRUE' pour permettre les comparaisons selon cet ordre.
Niveaux :
TRUE
La sortie affiche d’abord les valeurs du vecteur (XL, L, XL, XXL, L, XL) via 'pant.factor'. Les niveaux 'L' < 'XL' < 'XXL' sont indiqués dans l’ordre croissant. Ensuite, 'pant.factor[1] > pant.factor[2]' vérifie si « XL » est supérieur à « L », ce qui renvoie TRUE.
Félicitations
Félicitations, vous êtes arrivé au bout de ce tutoriel !
Dans ce tutoriel, vous avez exploré la fonction factor en R, avec un exemple, sa structure, l’ordre des niveaux, le renommage des niveaux, et enfin le tri de valeurs catégorielles.
Pour aller plus loin en R, suivez le cours Introduction to R de DataCamp.
Découvrez aussi notre tutoriel Utiliser les fonctions en R.