software.wikisort.org - Langage_de_programmation

Search / Calendar

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[3] et est écrit en C, Fortran et R.

R

Date de première version
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.2.2 ()[1]
Typage dynamique
Influencé par S, Scheme, Common Lisp, xLispStat
A influencé Julia
Écrit en C, Fortran et R
Système d'exploitation Multiplateforme
Licences GNU GPLv2[2]
Site web www.r-project.org
Extensions de fichiers .r, .R, .RDATA, .rds, .rda, .Rpres, .Rmd, .fst

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 , R est classé 12e dans l'index TIOBE qui mesure la popularité des langages de programmation[4].


Histoire


R dans un Terminal sous Linux.
R dans un Terminal sous Linux.

R 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 (informatique)[5].

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)[6],[7].

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[8]. Le débute le Comprehensive R Archive Network (CRAN) puis le , R est intégré au Projet GNU.

La version R 1.0.0, première version officielle du langage R, est publiée le [6],[9].

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[6],[10]. À ce moment, le langage compte plus de 200 bibliothèques développées par la communauté scientifique qui utilise R[7].

La version 2.0 est publiée le [11] et la version 3.0 le [12].

En 2015, plusieurs acteurs économiques importants comme IBM, Microsoft ou encore la société RStudio créent le R Consortium pour soutenir la communauté R et financer des projets autour de ce langage[13].


Distributions


La 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 la distribution proposée par Microsoft[14] ou encore celle de l'entreprise Oracle, Oracle R Distribution[15],[16].


Implémentations


L'implémentation la plus connue du langage R est le logiciel GNU R mis à disposition par le R Project[17].

Il existe des projets expérimentaux comme le projet Rho  projet suspendu depuis 2017[18]  visant à développer des versions plus rapides du langage R[19].


Interfaces


R avec l'environnement de développement intégré RStudio.
R avec l'environnement de développement intégré RStudio.

RStudio 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.

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é



Communauté des contributeurs


R 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 [20].

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[7].


Communauté des utilisateurs


Une 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[21].

Sur Twitter, la communauté se rassemble autour du hashtag rstats[22].

Sur Stack Overflow, il existe une importante communauté autour du tag R[23]. 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[24].

Des rencontres entre utilisateurs sont régulièrement organisées en particulier au sein de Meetup[25] ou des groupes R-Ladies[26] qui promeuvent la diversité des genres dans la communauté des utilisateurs du langage.


Conférence UseR!


La réunion officielle des utilisateurs de R a lieu chaque année et se nomme "useR"[27]. La première édition a eu lieu à Vienne (Autriche)[28]. 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[29] :


The R Journal


The 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[30].


Fonctionnalités


R est un langage interprété où les utilisateurs utilisent une interface en ligne de commande. R 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


La 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[31].


Lecture et importation des données



Manipulation et transformations des données


Les bibliothèques suivantes font partie d'une collection de bibliothèques tidyverse développées par Hadley Wickham et RStudio :

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[44].


Text mining ou fouille de textes


stringr et tidytext appartiennent au tidyverse et améliore la gestion des chaînes de caractères[45]. Il existe aussi stringi[46].


Séries temporelles


lubridate appartient à tidyverse et améliore la gestion des dates et heures[47]. Il existe aussi la bibliothèque xts[48], ou encore zoo pour les séries temporelles irrégulières[49].


Visualisation des données


ggplot2 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é


La bibliothèque Rmarkdown 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é


La bibliothèque shiny développée par la société RStudio permet de réaliser des applications web interactives en langage R[55].

La bibliothèque plotly permet de transformer des graphiques construits avec la libraririe 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


La 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


Rcpp permet une intégration entre R et C++[59].

Les bibliothèques microbenchmark[60] ou Rbenchmark[61] permettent d'évaluer les performances.


Autres


La 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].


Exemples



Syntaxe


L'affectation se fait avec <- ou = mais le premier est préféré[64].

> 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


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


Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Notes et références


  1. Peter Dalgaard (en), « R 4.2.2 is released », (consulté le )
  2. (en) « licence du projet R », sur r-ptoject.org,
  3. « Logiciels GNU »
  4. « index | TIOBE - The Software Quality Company », sur www.tiobe.com (consulté le )
  5. (en) « Evaluating the Design of the R Language »
  6. « Over 16 years of R Project history », sur Revolution Analytics Blog, (consulté le )
  7. Tippmann 2015
  8. « Contributors », sur R-project.org (consulté le )
  9. « R-1.0.0 is released », sur hypatia.math.ethz.ch (consulté le )
  10. « The R Foundation », sur R-project.org (consulté le )
  11. « R 2.0.0 is released », sur stat.ethz.ch (consulté le )
  12. « R 3.0.0 is released », sur stat.ethz.ch (consulté le )
  13. https://www.r-consortium.org/about
  14. Microsoft R Open
  15. Oracle R Distribution
  16. Oracle R Technologies
  17. (en) Hadley Wickham, « Performance », dans Advanced R (lire en ligne)
  18. (en) « Rho development suspended. · rho-devel/rho@bf6c652 », sur GitHub (consulté le )
  19. https://github.com/rho-devel/rho
  20. « RDocumentation », sur RDocumentation.org (consulté le )
  21. (en) David Smith, « R users: Be counted in Rexer's 2013 Data Miner Survey », Revolution Analytics Blog, (lire en ligne).
  22. https://twitter.com/hashtag/rstats?lang=fr
  23. Tag R sur Stack Overflow, mais également sur le site parent consacré aux statistiques, Cross Validated
  24. (en) « Rstudio community »
  25. « Meetups Calcul statistique avec R - Meetup », sur www.meetup.com (consulté le )
  26. (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 )
  27. (en) « R conferences »
  28. « useR! 2004 », sur www.ci.tuwien.ac.at (consulté le )
  29. (en) « R: Conferences », sur www.r-project.org (consulté le )
  30. (en) « The R Journal »
  31. https://cran.r-project.org/web/views/
  32. (en) « Readr »
  33. (en) « xml2 »
  34. (en) « Rjson »
  35. (en) « sparklyr »
  36. (en) « readxl »
  37. https://haven.tidyverse.org/
  38. (en) « dplyr »
  39. (en) « tidyr »
  40. (en) « purrr »
  41. (en) « tibble »
  42. (en) « tidyverse/glue », sur GitHub (consulté le )
  43. (en) « forcats »
  44. (en) « data.table »
  45. (en) « stringr »
  46. (en) « stringi »
  47. (en) « lubridate »
  48. (en) « xts »
  49. (en) « zoo »
  50. (en) « ggplot2 »
  51. (en) « scales »
  52. « R Markdown », sur rmarkdown.rstudio.com (consulté le )
  53. (en) « blogdown »
  54. (en) « bookdown »
  55. « Shiny », sur shiny.rstudio.com (consulté le )
  56. (en) « plotly »
  57. (en) « DT »
  58. (en) « leaflet »
  59. (en) « RCpp »
  60. (en) « microbenchmark »
  61. (en) « Rbenchmark »
  62. (en) « devtools »
  63. « Interface to 'Python' », sur rstudio.github.io (consulté le )
  64. « Writing R Extensions », sur cran.r-project.org (consulté le )
  65. « R », sur Information is Beautiful Awards (consulté le )

Bibliographie



Voir aussi


Sur les autres projets Wikimedia :


Articles connexes



Liens externes



На других языках


- [fr] R (langage)

[ru] R (язык программирования)

R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Язык создавался как аналогичный языку S, разработанному в Bell Labs, и является его альтернативной реализацией, хотя между языками есть существенные отличия, но в большинстве своём код на языке S работает в среде R. Изначально R был разработан сотрудниками статистического факультета Оклендского университета Россом Айхэкой (англ. Ross Ihaka) и Робертом Джентлменом (англ. Robert Gentleman) (первая буква их имён — R); язык и среда поддерживаются и развиваются организацией R Foundation[5].



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии