R est un langage de programmation et un logiciel libre destiné aux statistiques et à la science des données soutenu par la R Foundation for Statistical Computing. Il fait partie de la liste des paquets GNU[4] et est écrit en C, Fortran et R.
| R | ||
Terminal R dans sa version 2.11.1 | ||
| Date de première version | Août 1993 | |
|---|---|---|
| Paradigmes | Programmation multi-paradigmes : orientée objet, impérative, fonctionnelle, procédurale, réflexive | |
| Auteur | Ross Ihaka et Robert Gentleman | |
| Développeurs | R Core Team | |
| Dernière version | 4.6.0 (Because it was There, 24 avril 2026)[1],[2] | |
| Typage | dynamique | |
| Influencé par | S, Scheme, Common Lisp, xLispStat | |
| A influencé | Julia | |
| Écrit en | C et Fortran | |
| Système d'exploitation | Multiplateforme | |
| Licences | GNU GPLv2[3] | |
| Site web | www.r-project.org | |
| Extensions de fichiers | .r, .R, .RDATA, .rds, .rda, .Rpres, .Rmd, .fst | |
| modifier |
||
GNU R est un logiciel libre distribué selon les termes de la licence GNU GPL. Le site officiel fournit des binaires pour Linux, Windows et macOS, et des portages existent pour d'autres systèmes d'exploitation.
Le langage R est largement utilisé par les statisticiens, les data miners, data scientists pour le développement de logiciels statistiques et l'analyse des données.
En octobre 2025, R est classé 13e dans l'index TIOBE qui mesure la popularité des langages de programmation[5].
Histoire
modifierR est une implémentation du langage de programmation S avec l'ajout de la portée lexicale, inspirée du Scheme, et d'un ramasse-miettes[6].
Le langage S a été développé par John Chambers et ses collègues au sein des laboratoires Bell.
Le projet R naît en 1993 comme un projet de recherche de Ross Ihaka et Robert Gentleman à l'université d'Auckland (Nouvelle-Zélande)[7],[8].
Depuis 1997, une vingtaine de développeurs forment l'équipe de développement de R (R Development Core team). Les membres de cette équipe ont les droits d'écriture sur le code source[9]. Le 23 avril 1997 débute le Comprehensive R Archive Network (CRAN) puis le 5 décembre 1997, R est intégré au Projet GNU.
La version R 1.0.0, première version officielle du langage R, est publiée le 29 février 2000[7],[10].
En 2003, l'équipe de développement crée la R Foundation for Statistical Computing pour soutenir le projet R et devenir un point de contact de référence pour ceux qui veulent prendre contact avec la communauté R[7],[11]. À ce moment, le langage compte plus de 200 bibliothèques développées par la communauté scientifique qui utilise R[8].
La version 2.0 est publiée le 4 octobre 2004[12] et la version 3.0 le 3 avril 2013[13].
En 2015, plusieurs acteurs économiques importants comme IBM, Microsoft ou encore la société RStudio (devenue Posit) créent le R Consortium pour soutenir la communauté R et financer des projets autour de ce langage[14].
Distributions
modifierLa distribution la plus connue du langage R est celle du R Project et du Comprehensive R Archive Network (CRAN). Il existe d'autres distributions comme celle proposée par Microsoft[15] ou encore celle de l'entreprise Oracle, Oracle R Distribution[16],[17].
Interfaces
modifierRStudio est un environnement de développement intégré qui permet de travailler en R, développer de nouvelles bibliothèques et travailler avec des notebooks. L'entreprise qui développe RStudio, Posit Software, PBC (anciennement RStudio, Inc) a également lancé en 2025 un nouvel environnement de développement intégré, nommé Positron[18], qui est un fork de VSCode.
R existe aussi sur Emacs (Emacs Speaks Statistics).
Jupyter est une application web permettant de développer des notebooks en Python, Julia ou en R.
Les fonctionnalités de R sont accessibles depuis d'autres langages comme Python, Perl, Ruby, Julia.
Le langage R est intégré à certains SGBDR comme SQL Server depuis la version 2016.
Communauté
modifierCommunauté des contributeurs
modifierR dispose d'un très grand nombre de bibliothèques développées par une communauté de contributeurs. À titre d'exemple, le site RDocumentation.org recense plus de 15 000 bibliothèques sur le Comprehensive R Archive Network (CRAN), GitHub et Bioconductor (en) en mai 2018[19].
Le projet Bioconductor comprend à lui seul plus de 1 000 bibliothèques permettant aux chercheurs en biostatistique d'analyser et décrypter le génome[8].
Communauté des utilisateurs
modifierUne enquête menée en 2013 par Rexer Analytics auprès de 1 300 analystes montre que R est le logiciel le plus souvent utilisé lorsqu'il s'agit d'un travail en entreprise, dans le monde académique, au sein d'organismes publics ou d'ONG et chez les analystes travaillant comme consultants[20].
Sur Twitter et Mastodon, la communauté se rassemble autour du hashtag rstats[21].
Sur Stack Overflow, il existe une importante communauté autour du tag R[22]. Il existe également une importante blogosphère autour de l'agrégateur R-Bloggers.
RStudio a lancé son site de questions & réponses autour de R[23].
Des rencontres entre utilisateurs sont régulièrement organisées en particulier au sein de Meetup[24] ou des groupes R-Ladies[25] qui promeuvent la diversité des genres dans la communauté des utilisateurs du langage.
Conférence UseR!
modifierLa réunion officielle des utilisateurs de R a lieu chaque année et se nomme « useR »[26]. La première édition a eu lieu à Vienne (Autriche)[27]. Alternant traditionnellement entre l'Europe et l'Amérique chaque année, elle a lieu pour la première fois en Australie en 2018.
Depuis plusieurs conférences ont eu ou auront lieu[28] :
- useR! 2006[29], Vienne, Autriche
- useR! 2007, Ames, Iowa, États-Unis
- useR! 2008, Dortmund, Allemagne
- useR! 2009, Rennes, France
- useR! 2010, Gaithersburg, Maryland, États-Unis
- useR! 2011, Coventry, Royaume-Uni
- useR! 2012, Nashville, Tennessee, États-Unis
- useR! 2013, Albacete, Espagne
- useR! 2014, Los Angeles, États-Unis
- useR! 2015, Aalborg, Danemark
- useR! 2016, Stanford, Californie, États-Unis
- useR! 2017, Bruxelles , Belgique
- useR! 2018, Brisbane, Australie
- useR! 2019, Toulouse, France
- useR! 2020, Boston, États-Unis
- useR! 2024, Salzbourg, Autriche
- useR! 2025[30], Duke, Caroline de Nord, États-Unis
The R Journal
modifierThe R Journal est un journal en accès libre consacré à R. On y trouve des articles courts à moyens sur l'utilisation et le développement de R, y compris des bibliothèques, des conseils sur la programmation, des nouvelles du CRAN et des nouvelles de la fondation[31].
Fonctionnalités
modifierR est un langage interprété où les utilisateurs utilisent une interface en ligne de commande.
Il permet la programmation procédurale et, avec certaines fonctions, la programmation orientée objet.
Les tableaux (structure de données) sont rangés par column-major order (en).
Bibliothèques logicielles
modifierLa page R Task Views du Comprehensive R Archive Network donne une idée de l'étendue des fonctionnalités et des usages du langage R[32]. Le nombre de packages disponibles est, en 2026, de plus de 20000, avec environ 40% de packages en plus chaque année.
Manipulation et transformations des données avec la collection de bibliothèques tidyverse
modifierDepuis 2015, la manipulation des données en R a été profondément modifiée par la collection de bibliothèques tidyverse, développée par Hadley Wickham et la société RStudio (devenue Posit) :
- dplyr définit une grammaire de la manipulation des données, fournissant un ensemble cohérent de verbes qui résolvent les défis les plus courants de manipulation des données[33] ;
- tidyr fournit un ensemble de fonctions qui vous aident à obtenir des données bien rangées. Les données « ordonnées » (tidy) sont des données avec une forme cohérente : en bref, chaque variable va dans une colonne et chaque colonne est une variable[34] ;
- readr fournit un moyen rapide et convivial de lire les données rectangulaires (comme csv, tsv et fwf). Il est conçu pour analyser avec souplesse de nombreux types de données tout en continuant d'échouer lorsque les données changent de façon inattendue[35] ;
- purrr fournit un ensemble complet et cohérent d'outils pour travailler avec des fonctions et des vecteurs. Une fois maîtrisés les concepts de base, purrr permet de remplacer beaucoup de boucles avec du code qui est plus facile à écrire et plus expressif[36] ;
- tibble améliore les « data frames »[37] ;
- glue, une alternative à la fonction
paste()qui rend plus simple de combiner données et chaines de caractères[38] ; - forcats pour les variables qualitatives[39] ;
Lecture et importation des données
modifierDifférentes bibliothèques logicielles permettent d'importer et d'exporter plusieurs formats de données structurées. Parmi celles-ci figurent :
- xml2 pour les fichiers xml[40] ;
- rjson pour les objets JSON[41] ;
- la bibliothèque sparklyr, qui offre une interface entre R et Apache Spark[42] ;
- la bibliothèque readxl qui permet de lire les fichiers Excel avec R[43].
- haven, qui permet d'importer et d'exporter des fichiers SPSS, SAS et Stata[44].
Text mining ou fouille de textes
modifierstringr et tidytext appartiennent au tidyverse et améliorent la gestion des chaînes de caractères[45]. Il existe aussi stringi[46].
Séries temporelles
modifierlubridate appartient à tidyverse et améliore la gestion des dates et heures[47].
Une alternative est la bibliothèque xts[48], ou encore zoo pour les séries temporelles irrégulières[49].
Visualisation des données
modifierggplot2 appartient à tidyverse et définit une grammaire des graphiques permettant de combiner différentes couches graphiques[50]. La libraire scales permet de gérer la mise en forme (étiquettes, échelle, etc.) d'un graphique[51].
Reproductibilité
modifierLa bibliothèque markdown permet de combiner des sections de texte mises en forme en markdown et des sections de code en R[52] pour réaliser des rapports au format Microsoft Word ou PDF, des présentations au format Beamer ou HTML5 (slidy.js ou reveal.js), des pages web, des sites web complets, des blogs[53] ou même des ouvrages entiers[54].
Le langage Sweave permet de combiner des sections de code en LaTeX et des sections de code en langage R pour produire des publications scientifiques directement depuis R.
Interactivité
modifierLa bibliothèque shiny développée par la société RStudio (devenue Posit) permet de réaliser des applications web interactives en langage R[55].
La bibliothèque plotly permet de transformer des graphiques construits avec la bibliothèque ggplot2 en une version web/interactive via plotly.js[56].
La bibliothèque DT permet une interface avec la bibliothèque JavaScript DataTables[57].
Cartes
modifierLa bibliothèque Leaflet permet de représenter des données géographiques sur des cartes interactives à l'aide de la bibliothèques JavaScript Leaflet[58].
RCpp et performance
modifierRcpp permet une intégration entre R et C++[59].
Les bibliothèques microbenchmark[60] ou Rbenchmark[61] permettent d'évaluer les performances.
Autres
modifierLa bibliothèque devtools existe pour les développeurs de bibliothèques[62]. Elle permet notamment de charger des bibliothèques hébergées sous GitHub.
La bibliothèque reticulate permet une interface entre R et Python[63].
data.table est une alternative fournissant une version performante des data.frame avec des améliorations syntaxiques et des fonctionnalités pour une facilité d'utilisation, une commodité et une rapidité de programmation[64].
Exemples
modifierLes exemples suivants illustrent la syntaxe de base du langage, en utilisant l'interpréteur de commandes de R.
Syntaxe
modifier
L'affectation se fait avec <- ou = mais le premier est préféré[65].
> x <- c(1, 2, 3, 4, 5, 6) # Un vecteur ordonné
> print(x) # Affiche le vecteur
[1] 1 2 3 4 5 6
> x[1] # le premier élément
[1] 1
> x[0]
numeric(0)# Les indices commencent à 1
> x[1:3] # Les 3 premiers éléments
[1] 1 2 3
> (y <- x^2) # Les valeurs de x au carré. Les deux parenthèses permettent d'afficher le résultat
[1] 1 4 9 16 25 36
Structure d'une fonction
modifierUne des grandes forces de R est la facilité de création d'une fonction.
nomdelafonction <- function(arg1, arg2, ... ){ # Déclaration du nom de la fonction et de ses arguments
code
return(object)
}
sommedescarres <- function(x){ # Exemple de fonction
return(sum(x^2)) # Renvoie la somme des carrés des éléments de x
}
Prix et distinctions
modifier- 2015 : Médaille d'argent dans la catégorie outil de visualisation de données au Information is Beautiful Awards[66]
Notes et références
modifier- Peter Dalgaard (en), « R 4.6.0 is released », 24 avril 2026 (consulté le 27 avril 2026)
- Charles M. Schulz, « https://peanuts.fandom.com/wiki/File:19800703.gif », 3 juillet 1980 (consulté le 27 avril 2026)
- ↑ (en) « licence du projet R », sur r-ptoject.org, 19 septembre 2018
- ↑ « Logiciels GNU »
- ↑ (en) Paul Jansen, « TIOBE Index - TIOBE », sur tiobe.com (consulté le 13 octobre 2025).
- ↑ (en) « Evaluating the Design of the R Language ».
- « Over 16 years of R Project history », sur Revolution Analytics Blog, 4 mars 2016 (consulté le 18 février 2017).
- Tippmann 2015.
- ↑ « Contributors », sur R-project.org (consulté le 18 février 2017).
- ↑ « R-1.0.0 is released », sur hypatia.math.ethz.ch (consulté le 16 mai 2018).
- ↑ « The R Foundation », sur R-project.org (consulté le 18 février 2017).
- ↑ « R 2.0.0 is released », sur stat.ethz.ch (consulté le 15 mars 2018).
- ↑ « R 3.0.0 is released », sur stat.ethz.ch (consulté le 15 mars 2018).
- ↑ (en) « About », sur R Consortium (consulté le 16 novembre 2023).
- ↑ Microsoft R Open
- ↑ Oracle R Distribution
- ↑ Oracle R Technologies
- ↑ [1].
- ↑ « RDocumentation », sur RDocumentation.org (consulté le 31 mai 2018)
- ↑ (en) David Smith, « R users: Be counted in Rexer's 2013 Data Miner Survey », Revolution Analytics Blog, 30 janvier 2013 (lire en ligne).
- ↑ « #rstats », sur twitter.com via Internet Archive (consulté le 16 novembre 2023).
- ↑ Tag R sur Stack Overflow, mais également sur le site parent consacré aux statistiques, Cross Validated
- ↑ (en) « Rstudio community »
- ↑ « Meetups Calcul statistique avec R - Meetup », sur www.meetup.com (consulté le 31 mai 2018)
- ↑ (en-US) « R-Ladies Global – R-Ladies is a world-wide organization to promote gender diversity in the R community », sur rladies.org (consulté le 31 mai 2018)
- ↑ (en) « R conferences ».
- ↑ « useR! 2004 », sur www.ci.tuwien.ac.at (consulté le 26 janvier 2018).
- ↑ (en) « R: Conferences », sur www.r-project.org (consulté le 26 janvier 2018).
- ↑ « useR! 2006 », sur www.r-project.org (consulté le 14 juin 2025).
- ↑ « useR! 2025 », sur user2025.r-project.org (consulté le 14 juin 2025).
- ↑ (en) « The R Journal »
- ↑ CRAN, « CRAN Task Views », sur r-project.org, Comprehensive R Archive Network (CRAN), 22 avril 2024 (consulté le 22 avril 2024).
- ↑ (en) « dplyr »
- ↑ (en) « tidyr »
- ↑ (en) « Readr », sur tidyverse.org
- ↑ (en) « purrr »
- ↑ (en) « tibble »
- ↑ (en) « tidyverse/glue », sur GitHub (consulté le 15 mars 2018)
- ↑ (en) « forcats »
- ↑ (en) « xml2 », sur r-project.org
- ↑ (en) « Rjson », sur r-project.org
- ↑ (en) « sparklyr », sur rstudio.com
- ↑ (en) « readxl », sur tidyverse.org
- ↑ https://haven.tidyverse.org/
- ↑ (en) « stringr »
- ↑ (en) « stringi ».
- ↑ (en) « lubridate ».
- ↑ (en) « xts ».
- ↑ (en) « zoo ».
- ↑ (en) « ggplot2 »
- ↑ (en) « scales »
- ↑ « R Markdown », sur rmarkdown.rstudio.com (consulté le 23 janvier 2018)
- ↑ (en) « blogdown »
- ↑ (en) « bookdown »
- ↑ « Shiny », sur shiny.rstudio.com (consulté le 23 janvier 2018)
- ↑ (en) « plotly »
- ↑ (en) « DT »
- ↑ (en) « leaflet »
- ↑ (en) « RCpp »
- ↑ (en) « microbenchmark »
- ↑ (en) « Rbenchmark »
- ↑ (en) « devtools »
- ↑ « Interface to 'Python' », sur rstudio.github.io (consulté le 31 mai 2018)
- ↑ (en) « data.table »
- ↑ « Writing R Extensions », sur cran.r-project.org (consulté le 7 février 2018)
- ↑ « R », sur Information is Beautiful Awards (consulté le 26 février 2017)
Bibliographie
modifier- (en) Ross Ihaka et Robert Gentleman, « R: A language for data analysis and graphics », Journal of Computational and Graphical Statistics, vol. 5, 1996, p. 299-314 (DOI 10.2307/1390807, lire en ligne)
- (en) Ashley Vance, « Data Analysts Captivated by R’s Power », The New York Times, 6 janvier 2009 (lire en ligne)
- (en) Sylvia Tippmann, « Programming tools: Adventures with R », Nature, vol. 517, janvier 2015, p. 109–110 (DOI 10.1038/517109a)
- (en) Hadley Wickham, Ggplot2 : Elegant Graphics for Data Analysis, Springer, coll. « Use R », 2009
- (en) Hadley Wickham, Advanced R, Chapman & Hall/CRC, coll. « The R Series », 1re éd. (lire en ligne)
- (en) Hadley Wickham, R Packages : Organize, Test, Document, and Share Your Code, O'Reilly Media, 2015 (lire en ligne)
- (en) Garrett Grolemund et Hadley Wickham, R for Data Science, O'Reilly, 2016 (lire en ligne)
- Millot Gaël, Comprendre et réaliser les tests statistiques à l'aide de R, Éditions De Boeck, février 2014, 806 p. (présentation en ligne)
- François Husson, Jérôme Pagès et Sébastien Lê, Analyse de données avec R, Presses Universitaires de Rennes, 2016 (ISBN 978-2-7535-4869-5)
- (en) Julia Silge et David Robinson, Text Mining with R : A Tidy Approach, O'Reilly, 2017 (lire en ligne)
Voir aussi
modifierArticles connexes
modifier- Comprehensive R Archive Network
- ggplot2, bibliothèque de visualisation de données en R
- S, ancêtre du langage R
- RStudio, environnement de développement intégré pour le logiciel R
- Jupyter, interface web pour plusieurs langages, dont R
- RStudio, devenue Posit, entreprise spécialisée dans le développement de l'interface RStudio et des bibliothèques R comme Shiny ou Leaflet
Liens externes
modifier
- (en) Site officiel
- Ressource relative à la santé :