Accéder au contenu principal

Niveaux de facteur dans R

Ce tutoriel reprend des éléments du cours gratuit Intro to R de DataCamp et vous permet de vous exercer avec les facteurs.
· 6 min lire

Explorez l'IA

Si vous souhaitez suivre notre cours gratuit Intro to R, voici le lien.

Niveaux de facteur

Quand vous recevez un jeu de données, vous remarquerez souvent qu’il contient des facteurs avec des niveaux bien précis. Toutefois, il vous arrivera de vouloir renommer ces niveaux pour plus de clarté ou pour d’autres raisons. R vous le permet avec la fonction levels() :

levels(factor_vector) <- c("name1", "name2",...)

Un bon exemple est celui des données brutes issues d’une enquête. Une question fréquente dans tout questionnaire concerne le sexe de la personne répondante. Ici, pour simplifier, seules deux catégories ont été relevées, "M" et "F". (En pratique, il faut généralement plus de catégories pour les enquêtes ; dans tous les cas, on utilise un facteur pour stocker ces données catégorielles.)

survey_vector <- c("M", "F", "F", "M", "M")

Noter le sexe avec les abréviations "M" et "F" peut être pratique lors de la collecte sur papier, mais cela peut prêter à confusion à l’analyse. À ce stade, vous souhaiterez souvent remplacer les niveaux du facteur par "Male" et "Female" plutôt que "M" et "F" pour plus de clarté.

Attention : l’ordre dans lequel vous assignez les niveaux est important. Si vous tapez levels(factor_survey_vector), vous verrez que la sortie est [1] "F" "M". Si vous ne précisez pas les niveaux lors de la création du vecteur, R les attribue automatiquement par ordre alphabétique. Pour associer correctement "F" à "Female" et "M" à "Male", fixez les niveaux à c("Female", "Male"), dans cet ordre.

Consignes

  • Examinez le code qui crée un vecteur facteur à partir de survey_vector. Vous utiliserez factor_survey_vector à l’étape suivante.
  • Modifiez les niveaux de factor_survey_vector en c("Female", "Male"). Respectez l’ordre des éléments du vecteur.

        # Code pour construire factor_survey_vector
        survey_vector <- c("M", "F", "F", "M", "M")
        factor_survey_vector <- factor(survey_vector)

        # Spécifiez les niveaux de factor_survey_vector
        levels(factor_survey_vector) <-

        factor_survey_vector
        

Résumer un facteur

Une fois ce cours terminé, l’une de vos fonctions préférées dans R sera summary(). Elle offre un aperçu rapide du contenu d’une variable :

summary(my_var)

Revenons à notre enquête : vous souhaitez connaître le nombre de réponses "Male" et le nombre de réponses "Female" dans votre étude. La fonction summary() vous donne la réponse.

Consignes

Demandez un summary() de survey_vector et de factor_survey_vector. Interprétez les résultats des deux vecteurs. Sont-ils tous deux aussi utiles dans ce cas ?


        # Construisez factor_survey_vector avec des niveaux propres
        survey_vector <- c("M", "F", "F", "M", "M")
        factor_survey_vector <- factor(survey_vector)
        levels(factor_survey_vector) <- c("Female", "Male")
        factor_survey_vector

        # Générez le résumé pour survey_vector


        # Générez le résumé pour factor_survey_vector
        

Facteurs ordonnés

Comme "Male" et "Female" sont des niveaux non ordonnés (ou nominaux), R renvoie un avertissement indiquant que l’opérateur « supérieur à » n’a pas de sens. Comme vu précédemment, R attribue une valeur équivalente aux niveaux de tels facteurs.

Mais ce n’est pas toujours le cas ! Parfois, vous manipulerez des facteurs dont les catégories possèdent un ordre naturel. Dans ce cas, il faut s’assurer de transmettre cette information à R…

Supposons que vous dirigiez une équipe de cinq data analysts et que vous souhaitiez évaluer leurs performances. Pour cela, vous suivez leur rapidité, évaluez chaque analyste comme "slow", "medium" ou "fast", et enregistrez les résultats dans speed_vector.

Consignes

Pour commencer, affectez à speed_vector un vecteur de 5 entrées, une par analyste. Chaque entrée doit être soit "slow", "medium" ou "fast". Utilisez la liste ci-dessous :

  • L’analyste 1 est medium,
  • L’analyste 2 est slow,
  • L’analyste 3 est slow,
  • L’analyste 4 est medium et
  • L’analyste 5 est fast.

Inutile d’indiquer qu’il s’agit déjà de facteurs.


        # Créez speed_vector
        speed_vector <-
        


Si vous souhaitez aller plus loin avec ce cours, voici le lien.

Découvrez aussi notre Factors in R Tutorial.

Sujets

Contenus associés

Tutoriel

Régression MCO : Les idées clés expliquées

Tutoriel

Tableaux Python