R (lingua)

R
Logo.
Data della prima versione 1993
Paradigmi Programmazione multi-paradigma: orientata agli oggetti , imperativa , funzionale , procedurale , riflessiva
Autore Ross Ihaka e Robert Gentleman
Sviluppatori R Core Team
Ultima versione 4.1.0 (18 maggio 2021)
Digitando dinamico
Influenzato da S , Scheme , Common Lisp , xLispStat
influenzato Giulia
Scritto in C , Fortran e R
Sistema operativo Multipiattaforma
Licenze GNU GPLv2
Sito web www.r-project.org
Estensioni dei file .r, .R, .RDATA, .rds, .rda, .Rpres, .Rmd, .fst

R è un linguaggio di programmazione e un software open source per la statistica e la scienza dei dati supportati dalla R Foundation for Statistical Computing . Fa parte dell'elenco dei pacchetti GNU ed è scritto in C (lingua) , Fortran e R.

GNU R è un software gratuito distribuito secondo i termini della licenza GNU GPL e disponibile sotto GNU/Linux , FreeBSD , NetBSD , OpenBSD , MacOS X e Microsoft Windows .

Il linguaggio R è ampiamente utilizzato da statistici , data miner , data scientist per lo sviluppo di software statistici e l'analisi dei dati .

Nel settembre 2020R è classificato 9 ° nella indice TIOBE che misura la popolarità dei linguaggi di programmazione.

Storia

R è un'implementazione del linguaggio di programmazione S con l'aggiunta di scope lessicale , ispirato allo Scheme , e garbage collection (informatica) .

Il linguaggio S è stato sviluppato da John Chambers e dai suoi colleghi dei Bell Laboratories .

Il progetto R è iniziato nel 1993 come progetto di ricerca di Ross Ihaka e Robert Gentleman presso l' Università di Auckland ( Nuova Zelanda ).

Dal 1997, una ventina di sviluppatori hanno formato il team di sviluppo R ( R Development Core team ). I membri di questo team hanno i diritti di scrittura sul codice sorgente. Il23 aprile 1997inizia il Comprehensive R Archive Network (CRAN) quindi il5 dicembre 1997, R è integrato nel Progetto GNU .

La versione R 1.0.0, la prima versione ufficiale del linguaggio R, è stata rilasciata il 29 febbraio 2000.

Nel 2003, il team di sviluppo ha creato la R Foundation for Statistical Computing per supportare il progetto R e diventare un punto di riferimento per coloro che vogliono entrare in contatto con la comunità R. Attualmente il linguaggio conta più di 200 librerie. la comunità scientifica che utilizza R.

La versione 2.0 è stata rilasciata il 4 ottobre 2004 e la versione 3.0 la 3 aprile 2013.

Nel 2015, diversi importanti attori economici come IBM, Microsoft o la società RStudio hanno creato il Consorzio R per supportare la comunità R e finanziare progetti attorno a questa lingua.

distribuzioni

La distribuzione più nota del linguaggio R è quella del Progetto R e del Comprehensive R Archive Network (CRAN). Ci sono altre distribuzioni come ad esempio la distribuzione offerto da Microsoft o quello della Oracle società , Oracle R Distribution.

implementazioni

L'implementazione più nota del linguaggio R è il software GNU R reso disponibile dal progetto R.

Esistono progetti sperimentali come il progetto Rho finalizzato allo sviluppo di versioni più veloci del linguaggio R.

Interfacce

RStudio è un ambiente di sviluppo integrato che consente di lavorare in R, sviluppare nuove librerie e lavorare con i notebook .

R esiste anche su Emacs (Emacs Speaks Statistics).

Jupyter è un'applicazione web per lo sviluppo di notebook in Python , Julia o R.

Le funzionalità di R sono accessibili da altri linguaggi come Python , Perl , Ruby , Julia .

Il linguaggio R è stato integrato in alcuni RDBMS come SQL Server dalla versione 2016.

Comunità

Comunità di collaboratori

R ha un gran numero di librerie sviluppate da una comunità di contributori. Ad esempio, il sito RDocumentation.org elenca più di 15.000 biblioteche sul Comprehensive R Archive Network (CRAN), GitHub e Bioconductor  (in) inmaggio 2018.

Il solo progetto Bioconductor comprende più di 1.000 librerie che consentono ai ricercatori di biostatistica di analizzare e decifrare il genoma .

Comunità di utenti

Un sondaggio condotto nel 2013 da Rexer Analytics con 1.300 analisti mostra che R è il software più utilizzato quando si tratta di lavorare in aziende, università, enti pubblici o ONG e analisti che lavorano come consulenti.

Su Twitter , la community si raccoglie attorno all'hashtag rstats.

Su Stack Overflow , c'è una grande comunità attorno al tag R. C'è anche una grande blogosfera attorno all'aggregatore R-Bloggers.

RStudio ha lanciato il suo sito di domande e risposte su R.

Vengono organizzati regolarmente incontri tra utenti, in particolare all'interno di gruppi Meetup o R-Ladies che promuovono la diversità di genere nella comunità degli utenti linguistici.

Conferenza degli utenti!

L'incontro ufficiale degli utenti R si svolge ogni anno e si chiama "user". La prima edizione si è svolta a Vienna (Austria) . Tradizionalmente alternato tra Europa e America ogni anno, si tiene per la prima volta in Australia nel 2018.

Da allora si sono svolte o si svolgeranno diverse conferenze:

Il diario R

The R Journal è una rivista ad accesso aperto dedicata a R. Contiene articoli di breve e media dimensione sull'uso e lo sviluppo di R, incluse librerie, suggerimenti di programmazione, notizie da CRAN e notizie dalla fondazione R..

Caratteristiche

R è un linguaggio interpretato in cui gli utenti utilizzano un'interfaccia a riga di comando . R consente la programmazione procedurale e con alcune funzioni la programmazione orientata agli oggetti . Le tabelle (struttura dati) sono disposte in ordine di colonna  (in) .

Librerie software

La pagina R Task Views del Comprehensive R Archive Network dà un'idea della gamma di funzionalità e usi del linguaggio R.

Lettura e importazione dei dati

Manipolazione e trasformazione dei dati

Le seguenti librerie fanno parte di una raccolta di librerie tidyverse sviluppate da Hadley Wickham e RStudio  :

Data.table è un'alternativa che fornisce una versione ad alte prestazioni di data.frame con miglioramenti sintattici e funzionalità per facilità d'uso, praticità e velocità di programmazione.

Estrazione di testo e estrazione di testo

Stringr e Tidytext appartengono a Tidyverse e migliorano la gestione delle stringhe. C'è anche Stringi.

serie temporali

Lubridate è di proprietà di Tidyverse e migliora la gestione di data e ora. C'è anche la libreria Xts, o anche Zoo per serie temporali irregolari.

Visualizzazione dati

Ggplot2 appartiene a Tidyverse e definisce una grammatica grafica che consente di combinare diversi livelli grafici. La libreria Scales consente di gestire la formattazione (etichette, scala, ecc.) di un grafico.

Riproducibilità

La libreria Rmarkdown consente di combinare sezioni di testo formattate in markdown e sezioni di codice in R per produrre report in formato Microsoft Word o PDF , presentazioni in formato Beamer o HTML5 ( slidy.js o reveal.js ), pagine web, interi siti web , blog o addirittura interi libri.

Il linguaggio Sweave consente di combinare sezioni di codice in LaTeX e sezioni di codice in linguaggio R per produrre pubblicazioni scientifiche direttamente da R.

Interattività

La libreria Shiny sviluppata dalla società RStudio permette di creare applicazioni web interattive in linguaggio R.

La libreria Plotly permette di trasformare la grafica realizzata con la libreria Ggplot2 in una versione web/interattiva tramite plotly.js.

La libreria DT fornisce un'interfaccia con la libreria javascript DataTables .

Carte

La libreria Leaflet viene utilizzata per rappresentare i dati geografici su mappe interattive utilizzando la libreria JavaScript Leaflet .

RCpp e prestazioni

Rcpp consente l'integrazione tra R e C++.

Le librerie Microbenchmark o Rbenchmark vengono utilizzate per valutare le prestazioni.

Altro

La libreria Devtools esiste per gli sviluppatori di librerie. In particolare, permette di caricare le librerie ospitate sotto GitHub.

La libreria Reticulate fornisce un'interfaccia tra R e Python.

Esempi

Sintassi

L' incarico si fa con <-o =ma si preferisce il primo.

> 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

Struttura di una funzione

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 }

Premi e riconoscimenti

  • 2015: Medaglia d'argento nella categoria strumento di visualizzazione dei dati agli Information is Beautiful Awards

Note e riferimenti

  1. Peter Dalgaard, “  Rilasciata la R 4.1.0  ” ,18 maggio 2021
  2. (in) "  progetto di licenza R  " su r-ptoject.org ,19 settembre 2018
  3. "  software GNU  "
  4. (in) "  Linux R  "
  5. (it) "  R FreeBSD  "
  6. (it) "  R NetBSD  "
  7. (it) "  R Openbsd  "
  8. "  R per Mac OS X  " , su cran.r-project.org ( accesso 24 gennaio 2018 )
  9. “  Scarica R-3.4.3 per Windows. Il progetto R per il calcolo statistico.  » , Su cran.r-project.org (consultato il 24 gennaio 2018 )
  10. "  TIOBE Indice | TIOBE - The Software Quality Company  ” , su www.tiobe.com (consultato l'8 settembre 2020 )
  11. (in) "  Valutare il design del linguaggio R  "
  12. “  Oltre 16 anni di storia del progetto R  ” , su Revolution Analytics Blog ,4 marzo 2016(consultato il 18 febbraio 2017 )
  13. Tippmann 2015
  14. "  Contributori  " , su R-project.org (consultato il 18 febbraio 2017 )
  15. "  R-1.0.0 è rilasciato  " , su hypatia.math.ethz.ch ( accesso 16 maggio 2018 )
  16. "  The R Foundation  " , su R-project.org (consultato il 18 febbraio 2017 )
  17. "  R 2.0.0 è rilasciato  " , su stat.ethz.ch ( accesso 15 marzo 2018 )
  18. "  R 3.0.0 è rilasciato  " , su stat.ethz.ch ( accesso 15 marzo 2018 )
  19. https://www.r-consortium.org/about
  20. Microsoft R Aperto
  21. Oracle R Distribution
  22. Oracle R Technologies
  23. (in) Hadley Wickham , "Performance" in Advanced R ( leggi online )
  24. https://github.com/rho-devel/rho
  25. “  RDocumentation  ” , su RDocumentation.org (consultato il 31 maggio 2018 )
  26. (in) David Smith , "  Utenti R: essere 'contati nel sondaggio Data Miner 2013 di Rexer  " , Revolution Analytics Blog ,30 gennaio 2013( leggi in linea ).
  27. https://twitter.com/hashtag/rstats?lang=en
  28. Tag R su Stack Overflow, ma anche sul sito di statistiche padre, Cross Validated
  29. (in) "  comunità rstudio  "
  30. "  Calcolo statistico Meetup con R-Meetup  " , su www.meetup.com (consultato il 31 maggio 2018 )
  31. (en-US) "  R-Ladies Global - R-Ladies è un'organizzazione mondiale per promuovere la diversità di genere nella comunità R  " , su rladies.org (consultato il 31 maggio 2018 )
  32. (it) "  R conferenze  "
  33. "  utente! 2004  ” , su www.ci.tuwien.ac.at (consultato il 26 gennaio 2018 )
  34. (in) "  R: Conferences  " su www.r-project.org (consultato il 26 gennaio 2018 )
  35. (in) "  The R Journal  "
  36. https://cran.r-project.org/web/views/
  37. (it) "  Lettore  "
  38. (in) "  xml2  "
  39. (in) "  Rjson  "
  40. (in) "  scintillante  "
  41. (in) "  readxl  "
  42. https://haven.tidyverse.org/
  43. (in) "  dplyr  "
  44. (in) "  tidyr  "
  45. (in) "  fusa  "
  46. (in) "  Tibble  "
  47. (in) "  tidyverse / glue  " su GitHub (consultato il 15 marzo 2018 )
  48. (in) "  condannati  "
  49. (in) "  tabella dati  "
  50. (in) "  stringa  "
  51. (in) "  stringi  "
  52. (in) "  lubrificare  "
  53. (in) "  xts  "
  54. (in) "  Zoo  "
  55. (in) "  Ggplot2  "
  56. (in) "  scala  "
  57. "  R Markdown  " su rmarkdown.rstudio.com (consultato il 23 gennaio 2018 )
  58. (in) "  blogdown  "
  59. (in) "  bookdown  "
  60. "  Shiny  " su shiny.rstudio.com (consultato il 23 gennaio 2018 )
  61. (in) "  complotto  "
  62. (in) "  DT  "
  63. (in) "  opuscolo  "
  64. (in) "  CAPS  "
  65. (in) "  microbenchmark  "
  66. (in) "  Rbenchmark  "
  67. (in) "  devtools  "
  68. "  Interfaccia a 'Python'  " , su rstudio.github.io (consultato il 31 maggio 2018 )
  69. "  Scrittura di estensioni R  " , su cran.r-project.org (consultato il 7 febbraio 2018 )
  70. "  R  " , da Information is Beautiful Awards (consultato il 26 febbraio 2017 )

Bibliografia

  • (it) Ross Ihaka e Robert Gentleman , "  R: A language for data analysis and graphics  " , Journal of Computational and Graphical Statistics , vol.  5,1996, pag.  299-314 ( DOI  10.2307 / 1390807 , leggi online )
  • (it) Ashley Vance , "  Analisti dei dati affascinati dalla potenza di R  " , The New York Times ,6 gennaio 2009( leggi in linea )
  • (it) Sylvia Tippmann , “  Strumenti di programmazione: avventure con R  ” , Nature , vol.  517,gennaio 2015, pag.  109–110 ( DOI  10.1038 / 517109a )
  • (it) Hadley Wickham , Ggplot2: Elegant Graphics for Data Analysis , Springer, coll.  "Utente",2009
  • (it) Hadley Wickham , Advanced R , Chapman & Hall / CRC, coll.  "La serie R", 1 °  ed. ( leggi in linea )
  • (it) Hadley Wickham , Pacchetti R: organizza, testa, documenta e condividi il tuo codice , O'Reilly Media ,2015( leggi in linea )
  • (it) Garrett Grolemund e Hadley Wickham , R per Data Science , O'Reilly,2016( leggi in linea )
  • Millot Gaël , Comprensione ed esecuzione di test statistici con R , Éditions De Boeck,Febbraio 2014, 806  pag. ( presentazione on line )
  • Husson F, Pagès J e Lê S, Analisi dei dati con R, Presses Universitaires de Rennes
  • (it) Julia Silge e David Robinson , Text Mining con R: A Tidy Approach , O'Reilly,2017( leggi in linea )

Vedi anche

Articoli Correlati

link esterno