Dans le petit monde de la data science, il existe quelques superhéros, connus des statisticiens les plus aguerris comme des nouveaux arrivants tapant leurs premières lignes de code. Parmi ces superhéros, le plus famous d’entre eux reste Hadley Wickham, Chief Scientist chez RStudio, rockstaR et (co)auteur de nombreux packages indispensables à un usage débutant comme confirmé de R.
Si vous avez passé plus de deux heures sur R ces dix dernières années, il y a de fortes chances pour que vous ayez utilisé l’un des packages développés par Hadley Wickham, programmeur, auteur et professeur si prolifique qu’Internet a fini par donner un nom à son univers : le Hadleyverse… qui devient en 2016 le “Tidyverse” — ou “ordocosme”, dans la langue de Molière !
Hadley qui ?
Originaire de Nouvelle-Zélande, Hadley est aujourd’hui chief Scientist à RStudio, incontournable environnement de travail, et professeur adjoint de statistiques à l’University of Auckland. Il est particulièrement reconnu pour avoir développé des packages destinés à faciliter la manipulation et visualisation de données, ainsi que la programmation. Avec un seul mot d’ordre “make data science easier, faster, and more fun”.
Devenu une superstar chez les data nerds en une quinzaine d’année, Wickham est l’auteur de packages incontournables, que l’on peut classer en trois catégories :
– ceux destinés aux data sciences pures, comme le célèbre ggplot2
, permettant de visualiser vos data, tidyr
et dplyr
, pour des données bien ordonnées, ou encore lubridate
, indispensable pour manipuler des data temporelles.
– ceux pour l’importation, comme readr
, readxl
, haven
et xml2
, pour lire respectivement les fichiers csv, Excel, SASS/SPSS/Stata et XML, httr
, pour vous connecter aux APIs, et rvest
, pour scraper des sites web.
– et enfin, ceux orientés développement, avec devtools
, interface générale de programmation (qui contient notamment la célèbre fonction install_github
), roxygen2
, pour la documentation, et testthat
, qui, comme son nom l’indique, permet de tester vos packages.
Au-delà de son travail de développement, Wickham est également un penseur des données — des théories sur lesquelles reposent ses packages et qui définissent aujourd’hui la façon de penser R et les données de manière globale. On lui doit de nombreux articles et ouvrages, dont notamment :
– Tidy Data, un article dans lequel il décrit ce que sont les données “propres”, un principe sur lequel reposent, entre autres, tidyr
et dplyr.
– A layered grammar of graphics, sur lequel repose ggplot2
.
– Advanced R et R Packages, deux livres sur l’usage de R.
Goodbye Hadleyverse, Hello Tidyverse!
Lors de sa keynote à la conférence UseR! 2016, Mr W. a proposé l’utilisation de l’appellation “tidyverse”, pour faire référence à l’ensemble des packages que nous décrivons ici. (Si vous êtes pressé, ce point est abordé à la 44e minute de la vidéo ci-dessus… Cela dit, nous vous conseillons de regarder l’intervention complète !).
Un changement de nom, d’abord car le développement des packages n’est pas que de son fait — “There are lots and lots of people contributing” avance-t-il. Alors, l’ordocosme, qu’est-ce que c’est ? Schématiquement résume-t-il, « tidyverse = tidy data + tidy APIs ». L’objectif, à terme, étant de créer des packages qui se coordonnent parfaitement les uns aux autres, et de faciliter la prise en main de tous ces packages : “once you’ve learned the tools in one package, it’s trivial to combine them with tools from other packages“.
Les packages de l’ordocosme
Comme vous le savez, rien de mieux qu’une démonstration par l’exemple ! Alors, pour que nous regardions ensemble l’importance de Mr Wickham dans le monde de R, nous allons tirer de la liste des packages disponibles sur le CRAN le subset de ceux affichant Hadley comme auteur, coauteur ou contributeur.
Télécharger la liste depuis le CRAN
Commençons par télécharger la base de données des packages du CRAN.
download.file("http://cran.r-project.org/web/packages/packages.rds", "packages.rds")
pckgrds <- readRDS(file="packages.rds")
pckg <- as.data.frame(pckgrds[, -14], stringsAsFactors = FALSE)
Sélection avec dplyr
Package incontournable pour qui se lance dans la manipulation de données, dplyr
offre une véritable grammar of data-manipulation. Mais ça, en tant que lecteur assidu de notre site, vous le savez déjà : nous en parlons dans ce billet sur notre blog, ainsi que sur cet aide-mémoire.
Pour récupérer les packages indiquant Hadley comme auteur, coauteur ou contributeur, nous utiliserons la fonction filter
sur la colonne Author de notre dataframe.
library(dplyr)
pckg_hadley <- filter(pckg, grepl("Hadley Wickham", pckg$Author))
length(unique(pckg_hadley$Package))
## [1] 81
Formatage des dates avec lubridate
Ah… Le casse-tête des dates lors de la manipulation de données… Forme universellement disparate, les heures et dates des datasets diffèrent d’un continent à l’autre, d’un logiciel à l’autre, d’un document à l’autre. Pas toujours facile, de prime abord, de travailler avec les formats temporels : c’est là qu’intervient lubridate
, package développé par notre homme du jour, qui vous permet de manipuler simplement ce format.
Pour normaliser vos chaînes de caractères au format R, vous devez faire appel aux fonctions de la forme ymd
(pour Year Month Day, facile non ?) pour une chaîne comme “2015-08-16”. Vous l’aurez deviné, il suffit ensuite d’utiliser dmy
pour Day Month Year, ymd_hms
pour Year Month Date Hour Minute Second, et ainsi de suite. L’avantage ? Plus besoin de préciser les caractères de séparation, ni de faire appel à plusieurs fonctions.
library(lubridate)
pckg_hadley$Published <- ymd(pckg_hadley$Published)
Visualisation avec ggplot2
Développé en 2005 (eh oui, ça ne nous rajeunit pas), ggplot2
est devenu en 10 ans le must-have de la data visualisation avec R. Basé sur la grammar of graphics, ce package est destiné à faciliter la représentation de vos données. Preuve de son succès ? Cet outil est utilisé par Google, Facebook, Twitter, ou encore le New York Times. Et pour garder en tête toutes les bonnes pratiques, jetez un oeil à notre aide-mémoire !
library(ggplot2)
ggplot(pckg_hadley, aes(x=Published, y=..count..)) +
geom_line(stat="bin", bins = 20) +
xlab("Date") +
ylab("Volume") +
ggtitle("Publications sur le CRAN indiquant Hadley comme (co)auteur ou contributeur.")
Pour aller plus loin :
– hadleyverse, un package pour installer les packages de l’Hadleyverse/Tidyverse
– Le site officiel d’Hadley Wickham
– Ses articles
[…] est un package du tidyverse (anciennement connu sous le nom de hadleyverse) dédié à faciliter la manipulation, l’exploration et les calculs sur des données. Devenu […]
[…] biographie, groupe, wikis, etc. Par exemple, pour contribuer à la progression des packages du tidyverse, c’est facile : abonnez vous à Hadley Wickham, forkez un de ses repositories avant de lui […]
[…] vous suivez régulièrement les nouveautés de l’univeRs, un package du tidyverse est certainement remonté à vos oreilles ces derniers mois : purrr. « Encore un, pas facile de […]
[…] avec le package tm, et la méthode du tidy text-mining, inspirée des travaux d’Hadley Wickham (eh oui, encore lui […]
[…] connaissez sur le bout des doigts dplyr, tidyr, et autres packages du tidyverse ? Alors ça tombe bien : l’application Desktop de PowerBI dispose d’un onglet pour rédiger ou […]
[…] {dplyr} puis écrire la requête en tidyverse. Pour en savoir plus sur le {tidyverse} rendez-vous ici, ici et là 😀 […]
[…] le {tidyverse} c’est quoi ? Retour en juillet 2016 : la conférence UseR! 2016 bat son plein et Hadley Wickham, auteur prolifique de packages R, […]