R (мова програмування)

R - мова програмування для статистичної обробки даних і роботи з графікою, а також вільна програмна середа обчислень з відкритим вихідним кодом в рамках проекту GNU. Мова створювався як аналогічний мові S, розробленому в Bell Labs і є його альтернативною реалізацією, хоча між мовами є суттєві відмінності, але в більшості своїй код на мові S працює в середовищі R. Спочатку R був розроблений співробітниками статистичного факультету Оклендського університету Россом Айхекой ( англ. Ross Ihaka ) І Робертом Джентлменом ( англ. Robert Gentleman ) (Перша буква їхніх імен - R), на момент 2011 язик і середу підтримуються і розвиваються організацією R Foundation.

R широко використовується як статистичне програмне забезпечення для аналізу даних і фактично став стандартом для статистичних програм [2].

R доступний під ліцензією GNU GPL. Поширюється у вигляді вихідних кодів, а також компільованих додатків під ряд операційних систем: FreeBSD, Solaris [3] та інші дистрибутиви Unix і Linux, Microsoft Windows, Mac OS X.

В R використовується інтерфейс командного рядка, хоча доступні і декілька графічних інтерфейсів користувача, наприклад пакет R Commander, RKWard, RStudio, Weka, Rapid Miner, KNIME, а також засоби інтеграції в офісні пакети.

В 2010 R увійшов до списку переможців конкурсу журналу InfoWorld в номінації на кращий відкрите програмне забезпечення для розробки додатків [4].


1. Особливості

R підтримує широкий спектр статистичних і чисельних методів і володіє хорошою розширюваністю за допомогою пакетів. Пакети становлять собою бібліотеки для роботи специфічних функцій чи спеціальних галузей застосування. У базову поставку R включений основний набір пакетів, а всього за станом на 2006 рік доступно більше 800 пакетів.

Ще однією особливістю R є графічні можливості, які полягають у можливості створення якісної графіки, яка може включати математичні символи.


2. Приклади

2.1. Середній бал випускника вузу

 # У змінну a помістити список всіх оцінок:  a  <-  c  (  4  ,  3  ,  3  ,  3  ,  3  ,  4  ,  4  ,  4  ,  4  ,  4  ,  5  ,  4  ,  4  ,  4  ,  5  ,  5  ,  5  ,  5  ,  +  3  ,  5  ,  5  ,  4  ,  4  ,  3  ,  3  ,  4  ,  4  ,  3  ,  5  ,  5  ,  4  ,  3  ,  3  ,  4  ,  4  ,  3  ,  3  ,  5  ,  4  ,  5  ,  5  )  # У змінну n помістити кількість оцінок:  length  (  a  )  ->  n  # Середній бал:  m  <-  mean  (  a  )  # Таблиця (горизонтальна) з підрахунком кількості оцінок:  t  <-  table  (  a  )  # Перетворення в більш зручний формат даних (вертикальну таблицю):  f  <-  as.  data  .  frame  (  t  )  # Обчислення відсоткової частки та запис її в третій стовпець:  mapply  (  function  (  r  )  r  *  100  /  n, f  [  ,  2  ]  )  ->  f  [  ,  3  ]  # Заголовки стовпців:  colnames  (  f  )  <-  c  (  "Оцінка"  ,  "Кількість"  ,  "%"  )  # Вивід результатів:  anmf 

Результат:

 [1] 4 3 3 3 3 4 4 4 4 4 5 4 4 4 5 5 5 5 3 5 5 4 4 3 3 4 4 3 5 5 4 3 3 4 4 3 3 5 [39] 4 5 5 [1] 41 [1] 4 Оцінка Кількість% 1 3 12 29.26829 2 4 17 41.46341 3 5 12 29.26829 

3. Корисні інструменти

Для зручності роботи з R розроблено ряд графічних інтерфейсів, у тому числі:

Крім того, в ряді текстових і кодових редакторів передбачені спеціальні режими для роботи з R, зокрема:

Доступ до функцій і середовищі виконання R можливий з Python з використанням пакета RPy [12].


4. Комерціалізація

Компанія Revolution Analytics, заснована в 2007 році, цілком свій бізнес присвячує комерціалізації мови програмування R, в її комерційному пакеті Revolution R примітні такі компоненти (не поширювані з вільною версією мови), як ParallelR (підтримка багатопоточності середовища виконання), R Productivity Environment ( інтегроване середовище розробки), RevoScaleR (підтримка масово-паралельної обробки в рамках концепції " великих даних "), RevoDeployR, бібліотеки по інтеграції з веб-службами, підтримка форматів статистичних пакетів корпорації SAS Institute [13].

У жовтні 2011 року корпорація Oracle випустила апаратно-програмний комплекс Big Data Appliance - NoSQL -кластер серверів масово-паралельної обробки, з інтегрованим програмними засобами на основі мови R і Apache Hadoop [14] [15], а в лютому 2012 року мову вбудований в Oracle Database [16]. Також масово-паралельний аналіз засобами R підтриманий в апаратно-програмних комплексах Netezza корпорації IBM [17] [18].

Також мову R підтримують комерційні програмні середовища Tibco Spotfire [19], SPSS (починаючи з версії 16.0) [20], Statistica (починаючи з версії 9.0) [21], Platform Symphony [22], SAS [23].


5. CRAN

R і додаткові пакунки поширюються через CRAN (акронім Comprehensive R Archive Network). В даний час в світі доступні більше 60 дзеркал CRAN. Головний вузол - (http://cran.r-project.org/) розташований в Відні ( Австрія).

6. Інформаційний бюлетень R

Два-три рази на рік виходить вільно-поширюваний інформаційний журнал R Journal [24]. Він містить інформацію по статистичній обробці даних та розробці, що може бути цікаво як користувачам, так і розробникам R. З січня 2001 р. по жовтень 2008 р. він виходив як бюлетеня R News [25].

Примітки

  1. A Brief History - link10 R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
  2. Teaching-with-R.pdf - www.unt.edu / rss / Teaching-with-R.pdf (Англ.)
  3. R-Project on Solaris - link10
  4. InfoWorld Bossie Awards 2010 -
  5. SciViews - sciviews.org /
  6. Togaware: Rattle: Gnome Cross Platform GUI for Data Mining using R - rattle.togaware.com
  7. R syntax - jEdit Community - community.jedit.org /? q = node/view/2339
  8. http://www.kate-editor.org/syntax/2.5/r.xml - www.kate-editor.org/syntax/2.5/r.xml
  9. http://syn.sourceforge.net/ - syn.sourceforge.net /
  10. Tinn-R | Download Tinn-R software for free at SourceForge.net - sourceforge.net / projects / tinn-r
  11. WalWare - Homepage - www.walware.de / goto / statet
  12. http://rpy.sourceforge.net - rpy.sourceforge.net RPy on SourceForge
  13. 'Red Hat for stats' goes toe-to-toe with SAS - www.theregister.co.uk/2011/02/07/revolution_r_sas_challenge/
  14. Oracle Unveils the Oracle Big Data Appliance - www.oracle.com/us/corporate/press/512001
  15. Oracle rolls its own NoSQL and Hadoop - www.theregister.co.uk/2011/10/03/oracle_big_data_appliance/
  16. Prickett Morgan, Timothy Oracle tucks R Stats Language INTO Database - www.theregister.co.uk/2012/02/10/oracle_advanced_analytics/ (Англ.) . The Register (10 February 2012). Читальний - www.webcitation.org/688sEwF9i з першоджерела 3 червня 2012.
  17. Harris, Derrick. IBM Creates Big Data Frankenstein With Netezza-R Fusion - (Англ.) , The New York Times (2011-03-141).
  18. Rosenberg, Dave Open-source 'R' gets Hadoop integration - news.cnet.com/8301-13846_3-20012446-62.html (Англ.) . CNet. CBS. Читальний - www.webcitation.org/65WhlsAlm з першоджерела 17 лютого 2012.
  19. Spotfire Integration with S + and R - spotfire.tibco.com/community/blogs/stn/archive/2010/03/08/spotfire-integration-with-s-and-r.aspx
  20. RSS Matters - www.unt.edu/benchmarks/archives/2007/october07/rss.htm
  21. R Language Platform | StatSoft - www.statsoft.com/solutions/r-language-platform/
  22. R "integrated with Symphony - platformcomputing.blogspot.com/2011/03/r-integrated-with-symphony.html
  23. Calling Functions in the R Language (SAS / IML) - support.sas.com/documentation/cdl/en/imlsstat/63545/HTML/default/viewer.htm # statr_toc.htm
  24. R Journal - journal.r-project.org /
  25. CRAN: R News - link10