library(learnr)
library(knitr)
knitr::opts_chunk$set(echo = TRUE)

Ecrire de nouvelles pages pour IGoR

Le grimoire IGoR comprend les principaux sortilèges du langage des Runes. Mais il peut s'enrichir de nombreux pouvoirs, pour aider IcaRius dans sa quête. De la même façon, le logiciel R contient, dans son installation initiale, le cœur du programme ainsi qu’un ensemble de fonctions de base, mais il peut lui-aussi s'enrichir.

R étant un logiciel libre, il bénéficie d’une forte communauté d’utilisateurs qui peuvent librement contribuer au développement du logiciel en lui ajoutant des fonctionnalités supplémentaires. Ces contributions prennent la forme d’extensions, que l'on appelle packages en anglais.

Ajouter une extension à R, c'est comme ajouter un nouveau chapitre dans votre grimoire IGoR. Et ce chapitre comprend plusieurs sortilèges, c'est-à-dire des fonctions complémentaires, qui vous simplifieront la vie dans votre quête statistique.

knitr::include_graphics("images/grimoire.png")

Pour les plus téméraires : cliquez ici

Il existe un très grand nombre d’extensions (plus de 10 000 à ce jour), qui sont diffusées par un réseau baptisé CRAN (Comprehensive R Archive Network). La liste de toutes les extensions disponibles sur CRAN est disponible ici : http://cran.r-project.org/web/packages/.

Pour faciliter un peu le repérage des extensions, il existe un ensemble de regroupements thématiques (économétrie, finance, génétique, données spatiales…) baptisés Task views : http://cran.r-project.org/web/views/. On y trouve notamment une Task view dédiée aux sciences sociales, listant de nombreuses extensions potentiellement utiles pour les analyses statistiques dans ce champ disciplinaire : http://cran.r-project.org/web/views/SocialSciences.html.

On peut aussi citer le site Awesome R (https://github.com/qinwf/awesome-R) qui fournit une liste d’extensions choisies et triées par thématique.

Installons notre premier package

Un package apporte donc de nouvelles fonctionnalités dans R. Le plus souvent, il s'agit de nouvelles capacités de traitement, c'est-à-dire des fonctions pour faire des calculs, des graphiques, etc. Les packages peuvent aussi comprendre des jeux de données. Nous allons par exemple installer le package babynames qui permet de charger directement dans R les données sur les prénoms des enfants nés aux Etats-Unis depuis... 1900 !

L’installation d’une extension se fait par la fonction install.packages(), à qui on fournit le nom du package. L'opération install.packages() se fait une seule fois pour un package donné : ensuite, il reste installé de façon pérenne sur votre poste de travail. Pour installer un package, il faut donc connaître son "nom" - ici, c'est babynames. Attention à bien retranscrire ce nom en respectant la casse (si le nom comporte une majuscule).

install.packages("babynames")

Dans le fonctionnement de R, tous les packages téléchargés sont rangés en réserve. Le moment venu, il faut ensuite indiquer à R que vous souhaitez effectivement utiliser ce package : comme d'ouvrir un grimoire à une page précise pour lancer un sort. Il suffit de préciser l'instruction library() avec le nom du package, donc ici library(babynames). Habituellement, cette indication est donnée en début de programme R, mais il est possible de l'indiquer à l'endroit de votre choix, du moment que le chargement du package précéde les lignes de code qui en utilisent les fonctionnalités.

C'est parti, chargeons babynames :

# Charger le package et les fonctions qu'il contient en mémoire 
# à faire à chaque fois, lors de l'ouverture d'une nouvelle session R
library(babynames)

Une astuce : pour installer un package, il faut entourer le nom du package par des guillemets, alors qu'il faut les enlever pour l'activer dans un programme

install.packages("babynames")
library(babynames)

La fonction help()avec le nom du package permet d'accéder à la documentation.

help(babynames)

Vous accédérez à une page de renseignement, du type :
la fiche descriptive du package babynames
Bon, les packages sont documentés en anglais - mais la communauté francophone est très présente, et vous trouverez aisément de l'aide sur internet, en complément de l'appui proposé au sein de l'Insee et des Services statistiques ministériels : nous en parlerons à la fin de l'aventure d'icaRius. Le package babynames regroupe donc, dans un fichier également nommé babynames, les données des prénoms données par la Social Security Administration (SSA) - l'équivalent de la sécurité sociale aux Etats-Unis. Il y a cinq variables, year (année), sex (genre), name (prénom), n (nombre de naissances) et prop (proportion dans la population née cette année). D'ailleurs, vous pouvez le vérifier avec vos connaissances en R :

library(babynames)
head(babynames,5)

Laissons de côté les prénoms américains : ce n'est pas l'objet de ce chapitre que d'explorer les prénoms, et si le sujet vous intéresse vraiment, regarder plutôt du côté du fichier des prénoms en France diffusé par l'Insee :-)

Pour les plus téméraires : cliquez ici

Les données du fichier des prénoms produits par l'Insee sont également diffusées dans un package R (une initiative de quelques esprits mutins...). Mais son installation nécessite de s'aventurer dans un autre environnement que le CRAN...

Certains packages en cours de développement sont en effet disponibles sur d'autres plateformes que le CRAN, comme par exemple la plateforme GitHub. Cette dernière est ce que l'on appelle une forge logicielle : une sorte de fabrique pour créer des applications. L'installation des packages proposés sur Github se fait en trois temps : (i) il faut d'abord installer une extension pensée pour les développeurs (pour le coup proposée depuis le CRAN) avec install.packages("devtools") (ii) il faut identifier sur Github quel est le répertoire correspondant au package que vous souhaitez installer. Justement, pour le fichier des prénoms, c'est "ThinkR-open/prenoms" (iii) enfin, l'installation se fait avec la fonction install_github() suivie du nom du répertoire.

```r

J'installe d'abord la boite à outil devtools

install.packages("devtools")

J'active cette extension

library(devtools)

J'utilise la fonction install_github()

install_github("ThinkR-open/prenoms") ```

Le "tidyverse"

Parmi les nombreux chapitres de sortilèges que vous pourriez ajouter au grimoire IGoR, attardons-nous sur certains d'entre eux... Dans le langage des runes, il existe un ensemble de sortilèges un peu particuliers qui constituent le tidyverse. Il s'agit de plusieurs packages conçus pour bien fonctionner ensemble et apportant des pouvoirs drôlement efficaces pour le héros statisticien. Le terme tidyverse est une contraction de tidy (qu’on pourrait traduire par “bien rangé”) et de universe (un univers cohérent). Le tidyverse couvre un grand nombre d’opérations courantes dans R :

Pour certaines tâches, il peut exister plusieurs solutions différentes pour les réaliser. Dans la mesure où il n’est pas possible d’être exhaustif, nous avons fait le choix dans l'aventure d'icaRius de retenir en priorité les sortilèges du tidyverse.

D'ailleurs, vous avez déjà utilisé des sortilèges du tidyverse, sans le savoir !. Ainsi, le pipe %>% vient du tidyverse. De même, les sortilèges ggformula pour la réalisation de graphiques sont une composante du tidyverse !

Plutôt que d'installer un à un tous les packages de la constellation tidyverse, une extension éponyme permet en une ligne d'ajouter dans votre grimoire IGoR tous ces nouveaux sortilèges. Prenez votre plume :

# J'installe les packages du tidyverse en une ligne
install.packages("tidyverse")
# Je charge les packages en une ligne
library(tidyverse)

Vous voilà désormais en capacité d'invoquer les extensions du tidyverse, ou d'autres packages R encore ! Voici une illustration d'une sélection de ressources que vous pourriez d'ailleurs croiser dans votre apprentissage R, au cours du Funcamp ou plus tard (avec quelques intrus - saurez-vous les retrouver ?).
sélection de packages R

De quoi acquérir une force statistique herculéenne ! Voyons d'ailleurs comment icaRius soulève les obstacles rencontrés, maintenant qu'ils deviennent légers comme une plume...

Fin du chapitre >> reprenez la partie d'Icarius !!!

Version 0.9.3



InseeFrLab/funcamp-r-grimoire documentation built on Oct. 30, 2023, 3:25 p.m.