Guide des Factors en R : Un Guide pour Débutants

Salut à toi, futur·e programmeur·euse R ! Aujourd'hui, nous allons plonger dans le monde fascinant des factors en R. Ne t'inquiète pas si tu n'as jamais programmé auparavant - je serai ton guide amical tout au long de ce voyage, et à la fin, tu seras un·e expert·e en factorisation !

R - Factors

Qu'est-ce que les Factors ?

Avant de nous lancer dans le code, comprensons ce qu'est un factor. En R, les factors sont utilisés pour représenter des données catégorielles. Pense-y comme une manière de labeliser et d'organiser différents groupes ou catégories dans tes données.

Par exemple, si tu collectais des données sur les parfums de glace préférés de tes camarades de classe, tu pourrais utiliser des factors pour représenter les différents parfums : chocolat, vanille, fraise, etc. Chaque parfum serait un "niveau" dans ton factor.

Maintenant, voyons comment créer et travailler avec des factors en R !

Exemple : Créer Ton Premier Factor

Commençons par un exemple simple. Imagine que nous menons une enquête sur les animaux de compagnie préférés des gens.

# Créer un vecteur de préférences d'animaux de compagnie
pets <- c("Chien", "Chat", "Chien", "Poisson", "Chat", "Chien", "Hamster")

# Convertir le vecteur en factor
pet_factor <- factor(pets)

# Afficher le factor
print(pet_factor)

# Obtenir un résumé du factor
summary(pet_factor)

Lorsque tu exécuteras ce code, tu verras quelque chose comme ceci :

[1] Chien     Chat     Chien     Poisson    Chat     Chien     Hamster
Levels: Chat Chien Poisson Hamster

Chat Chien Poisson Hamster
2   3    1       1

Reprenons cela :

  1. Nous avons d'abord créé un vecteur pets avec différentes préférences d'animaux de compagnie.
  2. Ensuite, nous avons utilisé la fonction factor() pour convertir ce vecteur en factor.
  3. Lorsque nous affichons le factor, R nous montre les valeurs et les niveaux (catégories uniques) dans le factor.
  4. La fonction summary() nous donne un compte du nombre de fois que chaque niveau apparaît dans notre factor.

N'est-il pas génial que R ait automatiquement identifié les catégories uniques et les ait comptées pour nous ? C'est pourquoi les factors sont si utiles pour les données catégorielles !

Factors dans un Data Frame

Maintenant, voyons comment les factors fonctionnent à l'intérieur d'un data frame, qui est une structure courante pour stocker des données en R.

# Créer un data frame avec des préférences d'animaux de compagnie et des âges
pet_data <- data.frame(
name = c("Alice", "Bob", "Charlie", "David", "Eve"),
pet = c("Chien", "Chat", "Chien", "Poisson", "Chat"),
age = c(25, 30, 35, 28, 22)
)

# Convertir la colonne 'pet' en factor
pet_data$pet <- factor(pet_data$pet)

# Afficher la structure du data frame
str(pet_data)

# Obtenir un résumé du data frame
summary(pet_data)

Exécuter ce code donnera :

'data.frame':   5 obs. de  3 variables:
$ name: chr  "Alice" "Bob" "Charlie" "David" ...
$ pet : Factor w/ 3 levels "Chat","Chien","Poisson": 2 1 2 3 1
$ age : num  25 30 35 28 22

name                pet        age
Length:5           Chat    :2   Min.   :22.00
Class :character   Chien    :2   1st Qu.:25.00
Mode  :character   Poisson  :1   Median :28.00
Mean   :28.00
3rd Qu.:30.00
Max.   :35.00

Voici ce qui se passe :

  1. Nous avons créé un data frame avec des noms, des préférences d'animaux de compagnie, et des âges.
  2. Nous avons converti la colonne 'pet' en factor.
  3. La fonction str() nous montre la structure de notre data frame. Note que 'pet' est maintenant un factor avec 3 niveaux.
  4. La fonction summary() nous donne un résumé de chaque colonne, y compris un compte de chaque type d'animal pour notre colonne factor.

Changer l'Ordre des Niveaux

Parfois, tu pourrais vouloir changer l'ordre des niveaux dans ton factor. Voyons comment faire cela :

# Créer un factor de tailles de chemise
sizes <- factor(c("Petit", "Moyen", "Large", "Petit", "Moyen"))

# Afficher les niveaux actuels
print(levels(sizes))

# Changer l'ordre des niveaux
sizes <- factor(sizes, levels = c("Petit", "Moyen", "Large"))

# Afficher les nouveaux niveaux
print(levels(sizes))

Cela donnera :

[1] "Large"  "Moyen" "Petit"

[1] "Petit"  "Moyen" "Large"

Voici ce que nous avons fait :

  1. Nous avons créé un factor de tailles de chemise.
  2. Initialement, R a ordonné les niveaux alphabétiquement.
  3. Ensuite, nous avons utilisé l'argument levels dans la fonction factor() pour spécifier notre ordre désiré.
  4. Les niveaux sont maintenant dans l'ordre que nous avons spécifié : Petit, Moyen, Large.

Cela peut être particulièrement utile lorsque tu crées des graphiques ou des tableaux et que tu veux contrôler l'ordre dans lequel les catégories apparaissent.

Générer des Niveaux de Factor

Parfois, tu pourrais vouloir générer des niveaux de factor de manière programmatique. Voici comment tu peux le faire :

# Générer une séquence de mois
months <- factor(month.abb)

# Afficher les niveaux
print(levels(months))

# Créer un factor avec des niveaux personnalisés
temperatures <- factor(c("Froid", "Chaud", "Tempéré", "Chaud", "Froid"),
levels = c("Froid", "Tempéré", "Chaud"),
ordered = TRUE)

# Afficher le factor
print(temperatures)

Cela donnera :

[1] "Jan" "Fév" "Mar" "Avr" "Mai" "Jun" "Jul" "Août" "Sep" "Oct" "Nov" "Déc"

[1] Froid Chaud Tempéré Chaud Froid
Levels: Froid < Tempéré < Chaud

Reprenons cela :

  1. Nous avons utilisé month.abb, une constante intégrée de R, pour créer un factor d'abréviations de mois.
  2. Ensuite, nous avons créé un factor personnalisé pour les températures.
  3. Nous avons spécifié les niveaux que nous voulons et leur ordre.
  4. En setting ordered = TRUE, nous avons créé un factor ordonné où Froid < Tempéré < Chaud.

Méthodes Utiles pour les Factors

Voici un tableau de quelques méthodes utiles pour travailler avec des factors :

Méthode Description
levels() Obtenir ou définir les niveaux d'un factor
nlevels() Obtenir le nombre de niveaux dans un factor
as.numeric() Convertir un factor en numérique (basé sur l'ordre des niveaux)
as.character() Convertir un factor en chaîne de caractères
table() Créer une table de fréquence d'un factor
droplevels() Supprimer les niveaux inutilisés d'un factor

souviens-toi, la pratique rend parfait ! Essaie de créer tes propres factors et expérimente avec ces méthodes. Avant de t'en rendre compte, tu seras un·e pro du traitement des données catégorielles !

J'espère que ce tutoriel t'a aidé à comprendre les factors en R. Ils sont un outil puissant pour travailler avec des données catégorielles, et les maîtriser rendra ton voyage d'analyse de données beaucoup plus fluide. Bonne programmation !

Credits: Image by storyset