R (język)

R
Logo.
Data pierwszej wersji 1993
Paradygmaty Programowanie wieloparadygmatyczne: obiektowe , imperatywne , funkcjonalne , proceduralne , refleksyjne
Autor Ross Ihaka i Robert Gentleman
Deweloperzy Główny zespół R
Ostatnia wersja 4.1.0 (18 maja 2021)
Pisanie na maszynie dynamiczny
Wpływem S , Schemat , Common Lisp , xLispStat
Pod wpływem Julia
Napisane w C , Fortran i R
System operacyjny Wieloplatformowy
Licencje GNU GPLv2
Stronie internetowej www.r-project.org
Rozszerzenia plików .r, .R, .RDATA, .rds, .rda, .Rpres, .Rmd, .fst

R to język programowania i oprogramowanie open source do statystyki i nauki o danych wspierane przez R Foundation for Statistical Computing . Jest częścią listy pakietów GNU i jest napisany w C (język) , Fortran i R.

GNU R jest wolnym oprogramowaniem rozpowszechnianym na warunkach licencji GNU GPL i dostępnym na licencji GNU/Linux , FreeBSD , NetBSD , OpenBSD , MacOS X i Microsoft Windows .

Język R jest powszechnie stosowany przez statystyków , górników danych , naukowcy danych dotyczących rozwoju oprogramowania statystycznego i analizy danych .

W wrzesień 2020R jest w rankingu 9 th w indeksie TIOBE że środki popularność języków programowania.

Historia

R to implementacja języka programowania S z dodatkiem zakresu leksykalnego , inspirowanego Scheme , oraz garbage collection (computing) .

Język S został opracowany przez Johna Chambersa i jego kolegów z Bell Laboratories .

Projekt R rozpoczął się w 1993 roku jako projekt badawczy Rossa Ihaki i Roberta Gentlemana na Uniwersytecie Auckland ( Nowa Zelandia ).

Od 1997 roku około dwudziestu programistów utworzyło zespół programistyczny R (zespół R Development Core ). Członkowie tego zespołu mają prawa do zapisu kodu źródłowego. 23 kwietnia 1997 r.uruchamia Comprehensive R Archive Network (CRAN), a następnie5 grudnia 1997 r., R jest zintegrowany z Projektem GNU .

Wersja R 1.0.0, pierwsza oficjalna wersja języka R, została wydana w dniu 29 lutego 2000 r..

W 2003 roku zespół programistów utworzył R Foundation for Statistical Computing, aby wesprzeć projekt R i stać się punktem odniesienia dla tych, którzy chcą nawiązać kontakt ze społecznością R. W tej chwili język ma ponad 200 bibliotek. społeczność naukowa posługująca się R.

Wersja 2.0 została wydana w dniu 4 października 2004 r. i wersja 3.0 the 3 kwietnia 2013 r..

W 2015 r. kilku ważnych graczy gospodarczych, takich jak IBM, Microsoft czy firma RStudio, utworzyło Konsorcjum R, aby wspierać społeczność R i finansować projekty wokół tego języka.

Dystrybucje

Najbardziej znaną dystrybucją języka R jest R Project i Comprehensive R Archive Network (CRAN). Istnieją inne dystrybucje takie jak dystrybucji oferowanych przez Microsoft lub że z Oracle firmy Oracle R Distribution.

Realizacje

Najbardziej znaną implementacją języka R jest oprogramowanie GNU R udostępnione przez Projekt R.

Istnieją projekty eksperymentalne, takie jak projekt Rho, których celem jest opracowanie szybszych wersji języka R.

Interfejsy

RStudio to zintegrowane środowisko programistyczne, które umożliwia pracę w R, tworzenie nowych bibliotek i pracę z notebookami .

R istnieje również na Emacsie (Emacs Speaks Statistics).

Jupyter to aplikacja internetowa do tworzenia notatników w Python , Julia lub R.

Funkcjonalności R są dostępne z innych języków, takich jak Python , Perl , Ruby , Julia .

Język R został zintegrowany z niektórymi RDBMS, takimi jak SQL Server, od wersji 2016.

Społeczność

Społeczność współtwórców

R ma bardzo dużą liczbę bibliotek opracowanych przez społeczność współpracowników. Na przykład witryna RDocumentation.org zawiera listę ponad 15 000 bibliotek w Comprehensive R Archive Network (CRAN), GitHub i Bioconductor  (w) wmaj 2018.

Sam projekt Bioconductor obejmuje ponad 1000 bibliotek umożliwiających badaczom biostatystyki analizę i rozszyfrowanie genomu .

Społeczność użytkowników

Z ankiety przeprowadzonej w 2013 roku przez Rexer Analytics z udziałem 1300 analityków wynika, że ​​R to oprogramowanie najczęściej wykorzystywane do pracy w firmach, nauce, organach publicznych czy organizacjach pozarządowych oraz analitycy pracujący jako konsultanci.

Na Twitterze społeczność gromadzi się wokół rstatów z hashtagiem.

Na Stack Overflow istnieje duża społeczność wokół tagu R. Istnieje również duża blogosfera wokół agregatora R-Bloggers.

RStudio uruchomiło swoją witrynę pytań i odpowiedzi na temat R.

Regularnie organizowane są spotkania między użytkownikami, w szczególności w ramach grup Meetup lub R-Ladies , które promują różnorodność płci w społeczności użytkowników języka.

Konferencja użytkowników!

Oficjalne spotkanie użytkowników R odbywa się co roku i nazywa się „user”. Pierwsza edycja odbyła się w Wiedniu (Austria) . Tradycyjnie co roku na przemian odbywa się między Europą a Ameryką, po raz pierwszy odbywa się w Australii w 2018 roku.

Od tego czasu odbyło się lub odbędzie się kilka konferencji:

Dziennik R

R Journal to czasopismo o otwartym dostępie poświęcone R. Zawiera krótkie i średniej wielkości artykuły na temat wykorzystania i rozwoju R, w tym biblioteki, wskazówki dotyczące programowania, wiadomości z CRAN i wiadomości z fundacji R.

funkcje

R jest językiem interpretowanym, w którym użytkownicy używają interfejsu wiersza poleceń . R umożliwia programowanie proceduralne oraz z niektórymi funkcjami programowanie obiektowe . W tabelach (struktury) są umieszczone w celu kolumnowej głównym  (w) .

Biblioteki oprogramowania

Strona R Task Views w Comprehensive R Archive Network daje wyobrażenie o zakresie funkcji i zastosowań języka R.

Odczytywanie i importowanie danych

Manipulacja i transformacja danych

Następujące biblioteki są częścią kolekcji bibliotek tidyverse opracowanych przez Hadley Wickham i RStudio  :

Data.table to alternatywa zapewniająca wydajną wersję data.frame z ulepszeniami składniowymi i funkcjami zapewniającymi łatwość użycia, wygodę i szybkość programowania.

Eksploracja tekstu i eksploracja tekstu

Stringr i Tidytext należą do Tidyverse i poprawiają obsługę ciągów. Jest też Stringi.

Szereg czasowy

Lubridate jest własnością Tidyverse i usprawnia zarządzanie datą i czasem. Jest też biblioteka Xts, a nawet Zoo dla nieregularnych szeregów czasowych.

Wizualizacja danych

Ggplot2 należy do Tidyverse i definiuje gramatykę graficzną pozwalającą na łączenie różnych warstw graficznych. Biblioteka Wagi umożliwia zarządzanie formatowaniem (etykietami, skalą itp.) wykresu.

Odtwarzalność

Biblioteka Rmarkdown pozwala łączyć sekcje tekstu sformatowane w przecenach i sekcje kodu w R, aby tworzyć raporty w formacie Microsoft Word lub PDF , prezentacje w formacie Beamer lub HTML5 ( slidy.js lub objawić.js ), strony internetowe, całe witryny internetowe , blogi, a nawet całe książki.

Język Sweave umożliwia łączenie sekcji kodu w LaTeX i sekcji kodu w języku R w celu tworzenia publikacji naukowych bezpośrednio z języka R.

Interaktywność

Biblioteka Shiny opracowana przez firmę RStudio umożliwia tworzenie interaktywnych aplikacji internetowych w języku R.

Biblioteka Plotly pozwala na przekształcenie grafiki zbudowanej za pomocą biblioteki Ggplot2 do wersji internetowej / interaktywnej za pośrednictwem plotly.js.

Biblioteka DT zapewnia interfejs z biblioteką javascript DataTables .

Karty

Biblioteka Leaflet służy do przedstawiania danych geograficznych na interaktywnych mapach przy użyciu biblioteki Leaflet JavaScript .

RCpp i wydajność

Rcpp umożliwia integrację między R i C++.

Biblioteki Microbenchmark lub Rbenchmark służą do oceny wydajności.

Inny

Biblioteka Devtools istnieje dla deweloperów bibliotek. W szczególności umożliwia ładowanie bibliotek hostowanych na GitHub.

Biblioteka Reticulate zapewnia interfejs między R a Pythonem.

Przykłady

Składnia

Zadanie jest z <-lub =tylko pierwszy jest korzystny.

> 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

Struktura funkcji

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 }

Nagrody i uznanie

  • 2015: Srebrny medal w kategorii narzędzie do wizualizacji danych w konkursie Information is Beautiful Awards

Uwagi i referencje

  1. Peter Dalgaard, „  Wypuszczono R 4.1.0  ” ,18 maja 2021
  2. (w) „  licencja R projekt  ” na r-ptoject.org ,19 września 2018 r.
  3. „  Oprogramowanie GNU  ”
  4. (w) "  Linux R  "
  5. (pl) "  R FreeBSD  "
  6. (pl) "  R NetBSD  "
  7. (pl) "  R Openbsd  "
  8. „  R for Mac OS X  ” , na stronie cran.r-project.org (dostęp 24 stycznia 2018 r. )
  9. “  Pobierz R-3.4.3 dla Windows. Projekt R do obliczeń statystycznych.  » , Na cran.r-project.org (dostęp 24 stycznia 2018 )
  10. "  Indeks TIOBE | TIOBE - The Software Quality Company  ” , na stronie www.tiobe.com (dostęp 8 września 2020 r. )
  11. (w) "  Ocena projektu języka R  "
  12. „  Ponad 16 lat historii R Project  ” , na Blogu Revolution Analytics ,4 marca 2016(dostęp 18 lutego 2017 )
  13. Tippmann 2015
  14. „  Contributors  ” , na R-project.org (dostęp 18 lutego 2017 )
  15. „  R-1.0.0 jest wydany  ” , na hypatia.math.ethz.ch (dostęp 16 maja 2018 r. )
  16. „  The R Foundation  ” na R-project.org (dostęp 18 lutego 2017 r. )
  17. „  R 2.0.0 jest wydany  ” , na stat.ethz.ch (dostęp 15 marca 2018 r. )
  18. „  R 3.0.0 jest wydany  ” , na stat.ethz.ch (dostęp 15 marca 2018 r. )
  19. https://www.r-consortium.org/about
  20. Microsoft R Otwórz
  21. Dystrybucja Oracle R
  22. Technologie Oracle R
  23. (w) Hadley Wickham , „Performance” w Advanced R ( czytaj online )
  24. https://github.com/rho-devel/rho
  25. „  RDocumentation  ” , na RDocumentation.org (dostęp 31 maja 2018 r. )
  26. (w) David Smith , „  Użytkownicy R: liczą się w ankiecie Data Miner 2013 firmy Rexer  ” , Blog Revolution Analytics ,30 stycznia 2013 r.( przeczytaj online ).
  27. https://twitter.com/hashtag/rstats?lang=en
  28. Tag R w Stack Overflow, ale także w witrynie ze statystykami nadrzędnymi, Cross Validated
  29. (w) "  społeczność studia  "
  30. „  Meetups Statistical assessment with R-Meetup  ” , na stronie www.meetup.com (dostęp 31 maja 2018 r. )
  31. (en-US) „  R-Ladies Global – R-Ladies to ogólnoświatowa organizacja promująca różnorodność płci w społeczności R  ” , na rladies.org (dostęp 31 maja 2018 r. )
  32. (pl) "  Konferencje R  "
  33. "  użyj! 2004  ” , na www.ci.tuwien.ac.at (dostęp 26 stycznia 2018 )
  34. (w) „  R: Konferencje  ” na www.r-project.org (dostęp 26 stycznia 2018 )
  35. (w) „  Dziennik R  ”
  36. https://cran.r-project.org/web/views/
  37. (en) "  Czytelnik  "
  38. (w) "  xml2  "
  39. (w) "  Rjson  "
  40. (w) "  błyszcząca  "
  41. (w) "  readxl  "
  42. https://haven.tidyverse.org/
  43. (w) "  dplyr  "
  44. (w) "  tidyr  "
  45. (w) "  mruczeć  "
  46. (w) "  Tibble  "
  47. (w) "  tidyverse / klej  " na GitHub (dostęp 15 marca 2018 )
  48. (w) "  skazani  "
  49. (w) "  data.tabela  "
  50. (w) "  stringr  "
  51. (w) "  stringi  "
  52. (w) "  smarować  "
  53. (w) "  xts  "
  54. (w) "  Zoo  "
  55. (w) "  Ggplot2  "
  56. (w) "  łuski  "
  57. „  R Markdown  ” na rmarkdown.rstudio.com (dostęp 23 stycznia 2018 r. )
  58. (w) "  blogdown  "
  59. (w) "  bookdown  "
  60. „  Shiny  ” na shiny.rstudio.com (dostęp 23 stycznia 2018 )
  61. (w) "  fabuła  "
  62. (w) "  DT  "
  63. (w) "  ulotka  "
  64. (w) "  CZAPKI  "
  65. (w) "  mikrobenchmark  "
  66. (w) „  Rbenchmark  ”
  67. (w) "  narzędzia programistyczne  "
  68. „  Interfejs do „Pythona”  ” , na rstudio.github.io (dostęp 31 maja 2018 r. )
  69. „  Writing R Extensions  ” na stronie cran.r-project.org (dostęp 7 lutego 2018 r. )
  70. „  R  ” , z Information is Beautiful Awards (dostęp 26 lutego 2017 )

Bibliografia

  • (en) Ross Ihaka i Robert Gentleman , „  R: język do analizy danych i grafiki  ” , Journal of Computational and Graphical Statistics , tom.  5,1996, s.  299-314 ( DOI  10.2307/1390807 , przeczytaj online )
  • (en) Ashley Vance , „  Data Analysts Captivated by R's Power  ” , The New York Times ,6 stycznia 2009( przeczytaj online )
  • (en) Sylvia Tippmann , „  Narzędzia programowania: Przygody z R  ” , Nature , tom.  517,styczeń 2015, s.  109-110 ( DOI  10.1038 / 517109a )
  • (en) Hadley Wickham , Ggplot2: Elegant Graphics for Data Analysis , Springer, coll.  "Użyj R",2009
  • (en) Hadley Wickham , Advanced R , Chapman & Hall / CRC, kol.  "R seriach", 1 st  ed. ( przeczytaj online )
  • (pl) Hadley Wickham , R Packages: Organizuj, testuj, dokumentuj i udostępniaj swój kod , O'Reilly Media ,2015( przeczytaj online )
  • (en) Garrett Grolemund i Hadley Wickham , R for Data Science , O'Reilly,2016( przeczytaj online )
  • Millot Gaël , Zrozumienie i wykonanie testów statystycznych przy użyciu R , Éditions De Boeck,Luty 2014, 806  s. ( prezentacja online )
  • Husson F, Pagès J i Lê S, Analiza danych z R, Presses Universitaires de Rennes
  • (pl) Julia Silge i David Robinson , Text Mining z R: A Tidy Approach , O'Reilly,2017( przeczytaj online )

Zobacz również

Powiązane artykuły

Linki zewnętrzne