Accéder au contenu principal

Tutoriel sur les facteurs en R

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.
Actualisé 19 sept. 2026  · 5 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity
banner

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

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
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Niveaux :
  1. 'Female'
  2. 'Male'

Le code ci-dessus produit la sortie suivante :

Male Female Female Male Female
Levels:
'Female' 'Male'

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.

str(gender.factor)
 Factor w/ 2 levels "Female","Male": 2 1 1 2 1 
Factor w/ 2 levels "Female","Male": 2 1 1 2 1

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)
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Niveaux :
  1. 'Male'
  2. 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

'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": 1 2 2 1 2

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"))
  1. Gen_Male
  2. Gen_Female
  3. Gen_Female
  4. Gen_Male
  5. Gen_Female
Niveaux :
  1. 'Gen_Male'
  2. 'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
 Levels:
'Gen_Male' 'Gen_Female'

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.

pant <- c("XL","L","XL","XXL","L","XL")
pant.factor <- factor(pant,ordered = TRUE,levels = c("L","XL","XXL"))
pant.factor
pant.factor[1] > pant.factor[2]
  1. XL
  2. L
  3. XL
  4. XXL
  5. L
  6. XL
Niveaux :
  1. 'L'
  2. 'XL'
  3. 'XXL'

TRUE

XL L XL XXL L XL
 Levels:'L'< 'XL' < 'XXL'
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.
 

Sujets
R
Science des données

Cours R

Cours

Introduction à R

4 h
3.1M
Maîtrisez les bases de l’analyse de données en R et pratiquez les vecteurs, listes et data frames avec des données réelles.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow